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 相关文章推荐
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
跟老齐学Python之传说中的函数编写条规
Oct 11 Python
简单的Python2.7编程初学经验总结
Apr 01 Python
用Python编写一个简单的Lisp解释器的教程
Apr 03 Python
python3读取MySQL-Front的MYSQL密码
May 03 Python
深入理解Python中的*重复运算符
Oct 28 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
Linux安装Python3如何和系统自带的Python2并存
Jul 23 Python
详细总结Python常见的安全问题
May 21 Python
python调试工具Birdseye的使用教程
May 25 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
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
Yii入门教程之目录结构、入口文件及路由设置
2014/11/25 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
详解JS正则replace的使用方法
2016/03/06 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
跟老齐学Python之list和str比较
2014/09/20 Python
跟老齐学Python之总结参数的传递
2014/10/10 Python
python算法表示概念扫盲教程
2017/04/13 Python
python merge、concat合并数据集的实例讲解
2018/04/12 Python
Python 判断奇数偶数的方法
2018/12/20 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
配置管理计划的主要内容有哪些
2014/06/20 面试题
Delphi CS笔试题
2014/01/04 面试题
建筑专业自荐信
2013/10/18 职场文书
办公室内勤工作职责
2013/12/11 职场文书
好人好事事迹材料
2014/02/12 职场文书
园林系毕业生求职信
2014/06/23 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
认错检讨书
2014/10/02 职场文书
2015年妇委会工作总结
2015/05/22 职场文书