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当中的字符串和编码
Apr 25 Python
Python中字符串的修改及传参详解
Nov 30 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
Django ModelForm组件使用方法详解
Jul 23 Python
python2爬取百度贴吧指定关键字和图片代码实例
Aug 14 Python
python 修改本地网络配置的方法
Aug 14 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
Python tkinter实现图片标注功能(完整代码)
Dec 08 Python
Python有参函数使用代码实例
Jan 06 Python
pytorch之添加BN的实现
Jan 06 Python
python 在threading中如何处理主进程和子线程的关系
Apr 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中目录,文件操作详谈
2007/03/19 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
javascript Base类 包含基本的方法
2009/07/22 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
详解js闭包
2014/09/02 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
Python中的元类编程入门指引
2015/04/15 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
python3.7添加dlib模块的方法
2020/07/01 Python
python全栈开发语法总结
2020/11/22 Python
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
精彩的推荐信范文
2013/11/26 职场文书
二年级体育教学反思
2014/01/15 职场文书
运动会解说词50字
2014/01/18 职场文书
《我的信念》教学反思
2014/02/15 职场文书
追悼会主持词
2014/03/20 职场文书
教学质量月活动总结
2015/05/11 职场文书
delete in子查询不走索引问题分析
2022/07/07 MySQL