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设置tmpfs来加速项目的教程
Apr 17 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
Python实现批量执行同目录下的py文件方法
Jan 11 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
Jan 29 Python
pandas 选取行和列数据的方法详解
Aug 08 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
如何基于Python实现数字类型转换
Feb 07 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
python 实现简易的记事本
Nov 30 Python
python实现简单反弹球游戏
Apr 12 Python
Python代码实现双链表
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中header和session_start前不能有输出原因分析
2013/01/11 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
Extjs学习笔记之七 布局
2010/01/08 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
JavaScript获取页面中第一个锚定文本的方法
2015/04/03 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
讲解Python中的递归函数
2015/04/27 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
Python中装饰器高级用法详解
2017/12/25 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
Python的logging模块基本用法
2020/12/24 Python
Python绘制数码晶体管日期
2021/02/19 Python
python 制作本地应用搜索工具
2021/02/27 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
感谢信格式范文
2015/01/22 职场文书
邀请函格式范文
2015/02/02 职场文书
苏州园林导游词
2015/02/03 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis