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基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
python使用socket连接远程服务器的方法
Apr 29 Python
详解Python使用simplejson模块解析JSON的方法
Mar 24 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
TensorFlow实现iris数据集线性回归
Sep 07 Python
PyTorch的深度学习入门教程之构建神经网络
Jun 27 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
python实现桌面托盘气泡提示
Jul 29 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
python同时遍历两个list用法说明
May 02 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 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
thinkphp中连接oracle时封装方法无法用的解决办法
2013/06/17 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
Python 字符串换行的多种方式
2018/09/06 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
jupyter 导入csv文件方式
2020/04/21 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
Overload和Override的区别
2012/09/02 面试题
青年创业培训欢迎词
2014/01/10 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
搞笑车尾标语
2014/06/23 职场文书
社会工作专业求职信
2014/07/15 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
如何用python清洗文件中的数据
2021/06/18 Python
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers