千家信息网

Python+Selenium怎么实现短视频热点爬取

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"Python+Selenium怎么实现短视频热点爬取"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2026年11月02日Python+Selenium怎么实现短视频热点爬取

本篇内容介绍了"Python+Selenium怎么实现短视频热点爬取"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    涉及知识点

    1.selenium,作为浏览器端一个自动化测试工具,可以模拟用户操作浏览器的动作,就像是人自己操作浏览器一样。关于selenium的具体信息如下

    • Selenium进行元素定位,主要有ID,Name,ClassName,Css Selector,Partial LinkText,LinkText,XPath,TagName等8种方式。

    • Selenium获取单一元素(如:find_element)和获取元素数组(如:find_elements)两种方式。

    • Selenium元素定位后,可以给元素进行赋值和取值,或者进行相应的事件操作(如:click)。

    2.requests,web请求对象,通过selenium获取到视频的url后,再通过requests库进行视频流的获取,然后保存成本地视频文件。

    3.浏览器开发者工具,通过开发者工具可以查看页面上某一个按钮或链接等页面元素对应的html标识。

    目标分析

    在爬取视频之前,需要分析目标结构,本视频爬取分析可分为三步,具体如下所示:

    1. 分析热榜目录

    热榜目录是一个ul标签,每一个热榜对象一个li子标签,分别包含热度,标题等内容。点击标题链接可以进入具体视频播放页面,目标分析如下所示:

    2.分析视频播放页面

    视频在video标签中播放,短视频播放的真实地址,在video的source子标签中,且为了保证播放质量,video下有三个source,任取其一即可,如下所示:

    3. 分析弹出框

    在爬取过程中,经过弹出需要登录的窗口,需要及时关闭掉,否则可能会导致找不到页面元素,从而爬取不成功。如下所示:

    核心代码

    经过以上分析,就可以编写爬虫代码了,如下所示:

    1. 遍历热点目录

    通过获取页面上对应的信息,解析出热点视频的目录,如下所示:

    self.__driver.get(self.__url)self.close_popup_window()# 4. 最大化窗口self.__driver.maximize_window()time.sleep(self.__wait_sec)# 打开以后,根据class=BHgRhxNh获取ul下的liif self.checkIsExistsByClass(cls='BHgRhxNh'):    # 获取    hots = self.__driver.find_elements(by=By.CLASS_NAME, value='BHgRhxNh')    hot_infos = []    index = 0    for hot in hots:        hot_info = {}        a = hot.find_element(by=By.TAG_NAME, value='a')        href = a.get_attribute("href")        text = a.text        hot_info['url'] = href        hot_info['text'] = text        if index > 0:            div = hot.find_element(by=By.CLASS_NAME, value='GsuT_hjh')            if div is not None:                hot_value = div.find_element(by=By.TAG_NAME, value='span').text                hot_info['value'] = hot_value        hot_infos.append(hot_info)        index = index + 1    print(hot_infos)

    2. 获取真实短视频url

    打开单个热点视频的url,并解析真实短视频播放url,如下所示:

    def open_video_html(self, url):    """打开具体视频的页面"""    self.__driver.get(url=url)    time.sleep(1)    self.close_popup_window()  # 关闭弹窗    video = self.__driver.find_element(by=By.TAG_NAME, value='video')    source = video.find_element(by=By.TAG_NAME, value='source')    src = source.get_attribute('src')    return src

    3. 下载视频

    获取真实的url后,即可进行下载,如下所示:

    def download_video(self, url, video_name):    """根据视频源地址进行下载"""    if os.path.exists(video_name):        # 如果已重新下载过,则不需要再次下载        return    else:        with open(video_name, 'wb') as fp:            fp.write(requests.get(url).content)

    4. 关闭弹出的登录窗口

    在爬取过程中,经常弹出需要登录的遮罩窗口,需要进行关闭,如下所示:

    def close_popup_window(self):    try:        login = self.__driver.find_element(by=By.ID, value='login-pannel')        if login is not None:            login.find_element(by=By.CLASS_NAME, value='dy-account-close').click()    except BaseException as e:        pass    try:        login = self.__driver.find_element(by=By.CLASS_NAME, value='GaDkStRD')        if login is not None:            btns = login.find_elements(by=By.TAG_NAME, value='button')            for btn in btns:                if btn.text == '取消':                    btn.click()                    break    except BaseException as e:        pass

    5. 保存日志

    在爬取成功后,对爬取的短视频的相关内容进行保存,如下所示:

    def save_data(self, hot_infos):    """    保存数据    :param res_list: 保存的内容文件    :return:    """    t = time.strftime("%Y-%m-%d", time.localtime())    with open(f'logs[{t}].json', 'a', encoding='utf-8') as f:        res_list_json = json.dumps(hot_infos, ensure_ascii=False)        f.write(res_list_json)

    示例截图

    程序开发完成后,运行示例如下所示:

    爬取的视频保存在download目录下,如下所示:

    "Python+Selenium怎么实现短视频热点爬取"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

    视频 分析 元素 页面 热点 内容 目录 标签 浏览器 浏览 工具 目标 知识 过程 开发 登录 成功 代码 信息 地址 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖北九亚互联网络科技有限公司 广州为想互联网科技有限公司 奇酷互联网科技 礼当家互联网科技 易通互联网络科技有限公司 润盈互联网科技 深圳期待互联网科技 央行互联网金融科技公司 千方科技属于互联网企业吗 互联网科技商业 佛山市翊博互联网络科技有限公司 宇信科技在杭州互联网排第几 图游互联网科技 抖集互联网科技技术咨询 互联网时代科技型公司的机会 互联网科技企业商标注意事项 互联网界的黑科技 兰石爱特工业互联网科技分公司 盐城市攀科互联网科技有限公司 黑龙江互联网科技公司 紫鲸互联网科技 电子科技大学互联网 上海致骋互联网科技 大白互联网科技 隆华科技工业互联网 崇明区互联网教育科技诚信经营 米聚互联网科技南京有限公司排面 中和天地互联网科技有限公司 互联网时代高科技布局 株洲百竞科技的互联网营销顾问
    0