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实现简单截取中文字符串的方法
Jun 15 Python
Windows下搭建python开发环境详细步骤
Jul 20 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
基于python 爬虫爬到含空格的url的处理方法
May 11 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
python for 循环获取index索引的方法
Feb 01 Python
windows下安装Python虚拟环境virtualenvwrapper-win
Jun 14 Python
Pycharm运行加载文本出现错误的解决方法
Jun 27 Python
python hmac模块验证客户端的合法性
Nov 07 Python
神经网络训练采用gpu设置的方式
Mar 03 Python
Python数据分析之pandas读取数据
Jun 02 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
业余方法DIY电子管FM收音机
2021/03/02 无线电
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
Javascript typeof 用法
2008/12/28 Javascript
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
js数组操作常用方法
2014/05/08 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
vue实现购物车的监听
2020/04/20 Javascript
举例讲解Python设计模式编程的代理模式与抽象工厂模式
2016/01/16 Python
python 不以科学计数法输出的方法
2018/07/16 Python
Python中的单下划线和双下划线使用场景详解
2019/09/09 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
String和StringBuffer的区别
2015/08/13 面试题
幼儿教师研修感言
2014/02/12 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
原告代理词范文
2015/05/25 职场文书
城南旧事观后感
2015/06/11 职场文书
2016年春节问候语
2015/11/11 职场文书
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL