Python实现抖音热搜定时爬取功能


Posted in Python onMarch 16, 2022

大家好,我是丁小杰。

上次和大家分享了Python定时爬取微博热搜示例介绍,堪称摸鱼神器,一个热榜不够看?今天我们再来爬取一下抖音热搜榜,感兴趣的小伙伴可以自己动手尝试一下哦。

抖音热搜榜

链接:https://tophub.today/n/K7GdaMgdQy

Python实现抖音热搜定时爬取功能

整个热榜共50条数据,本次爬取的内容:排名、热度、标题、链接。

requests 爬取

requests 是一种非常简单的方法,由于该页面没有反爬措施,所以直接get 请求页面即可。

import requests
import pandas as pd

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36'
}
url = 'https://tophub.today/n/K7GdaMgdQy'
page_text = requests.get(url=url, headers=headers).text
page_text

Python实现抖音热搜定时爬取功能

可以看到,只需要几行代码,数据就很轻松地获取到了。

selenium 爬取

selenium设置为无头浏览器,打开指定url获取页面数据。

from selenium import webdriver

option = webdriver.ChromeOptions()
option.add_argument('--headless')

driver = webdriver.Chrome(options=option)

url = 'https://tophub.today/n/K7GdaMgdQy'
driver.get(url)

page_text = driver.page_source

两种爬取方法都能够成功获取到数据,但requests相对简洁,整个代码运行速度也更快,如果页面数据不是动态加载的话,用requests相对方便。

数据解析

现在用lxml库解析我们爬取的数据,并保存到excel中。

tree = etree.HTML(page_text)

tr_list = tree.xpath(
    '//*[@id="page"]/div[2]/div[2]/div[1]/div[2]/div/div[1]/table/tbody/tr')

df = pd.DataFrame(columns=['排名', '热度', '标题', '链接'])
for index, tr in enumerate(tr_list):
    hot = tr.xpath('./td[3]/text()')[0]
    title = tr.xpath('./td[2]/a/text()')[0]
    article_url = tr.xpath('./td[2]/a/@href')[0]
    df = df.append({
        '排名': index + 1,
        '热度': hot,
        '标题': title,
        '链接': article_url}, ignore_index=True)
df['链接'] = 'https://tophub.today' + df['链接']
df

运行结果

Python实现抖音热搜定时爬取功能

设置定时运行

至此,爬取代码已经完成,想要实现每小时自动运行代码,可以使用任务计划程序。

打开任务计划程序,【创建任务】

Python实现抖音热搜定时爬取功能

输入名称,名称随便起就好。

Python实现抖音热搜定时爬取功能

选择【触发器】>>【新建】>>【设置触发时间】

Python实现抖音热搜定时爬取功能

选择【操作】>>【新建】>>【选择程序】

Python实现抖音热搜定时爬取功能

最后确认即可。到时间就会自动运行,或者右键任务手动运行。

这就是今天要分享的内容,整体难度不大,希望大家能够有所收获,文章中的代码拼接起来就可以运行!

以上就是Python实现抖音热搜定时爬取功能的详细内容,更多关于Python抖音热搜爬取的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
使用py2exe在Windows下将Python程序转为exe文件
Mar 04 Python
详解Python实现按任意键继续/退出的功能
Aug 19 Python
浅谈Python使用Bottle来提供一个简单的web服务
Dec 27 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
Mar 11 Python
python使用celery实现异步任务执行的例子
Aug 28 Python
python代码打印100-999之间的回文数示例
Nov 24 Python
Python单链表原理与实现方法详解
Feb 22 Python
Python-jenkins 获取job构建信息方式
May 12 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 Python
Python3的进程和线程你了解吗
Mar 16 #Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 #Python
bat批处理之字符串操作的实现
Mar 16 #Python
一起来学习Python的元组和列表
Mar 13 #Python
python自动化测试之Selenium详解
python数字类型和占位符详情
Mar 13 #Python
Python+Selenium自动化环境搭建与操作基础详解
You might like
mayfish 数据入库验证代码
2010/04/30 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
php防止用户重复提交表单
2015/11/02 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
Jquery判断$("#id")获取的对象是否存在的方法
2013/09/25 Javascript
JS跨域问题详解
2014/11/25 Javascript
javascript版2048小游戏
2015/03/18 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
详解a++和++a的区别
2017/08/30 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
pyenv命令管理多个Python版本
2017/03/26 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
python如何读写csv数据
2018/03/21 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
2020/01/14 Python
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
物理教育专业毕业生推荐信
2013/11/03 职场文书
博士生入学考试推荐信
2013/11/17 职场文书
大学毕业生的自我鉴定
2013/11/30 职场文书
五四青年节演讲稿
2014/05/26 职场文书
天那边观后感
2015/06/09 职场文书
学校标语口号大全
2015/12/26 职场文书
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android
pycharm无法安装cv2模块问题
2022/05/20 Python