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 相关文章推荐
基于python进行桶排序与基数排序的总结
May 29 Python
Python实现的从右到左字符串替换方法示例
Jul 06 Python
pyshp创建shp点文件的方法
Dec 31 Python
详解Django-restframework 之频率源码分析
Feb 27 Python
python 函数中的内置函数及用法详解
Jul 02 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
Python timer定时器两种常用方法解析
Jan 20 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
Sep 29 Python
解决pip安装的第三方包在PyCharm无法导入的问题
Oct 15 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 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中使用全局变量的几种方法
2013/06/24 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
php自定文件保存session的方法
2014/12/10 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
jquery图片切换插件
2015/03/16 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
全面分析Python的优点和缺点
2018/02/07 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
村委会贫困证明范文
2014/09/21 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
2014年招商工作总结
2014/11/22 职场文书
升学宴答谢词
2015/01/05 职场文书
话题作文之诚信
2019/11/28 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python