【爬虫实战】用python爬今日头条热榜TOP50榜单!

news2025/2/25 2:02:29

文章目录

  • 一、爬取目标
  • 二、爬取结果
  • 三、代码讲解
  • 四、技术总结
  • 五、演示视频
  • 六、附完整源码

一、爬取目标

您好!我是@马哥python说,一名10年程序猿。

今天分享一期爬虫案例,爬取的目标是:今日头条热榜的榜单数据。

打开今日头条首页,在页面右侧会看到头条热榜,如下:
爬取目标

爬取以上6个关键字段,含:

热榜排名,热榜标题,热度值,热榜标签,热榜分类,热榜链接。

开发者模式分析:
开发者分析

二、爬取结果

爬取结果截图:
部分数据

三、代码讲解

首先,导入需要用到的库:

import requests
import pandas as pd
import re

定义一个请求头:(爬取目标较简单,一个User-agent即可)

# 请求头
h1 = {
	'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15',
}

定义请求地址:

url = 'https://www.toutiao.com/hot-event/hot-board/?origin=toutiao_pc'

用requests发送请求:

# 发送请求
response = requests.get(url, headers=h1)

查看响应码并以json方式接收返回数据:

# 查看响应码
print(r.status_code)
# 接收返回数据
json_data = r.json()

定义一些空列表,用于存放数据:

title_list = []  # 热榜标题
value_list = []  # 热度值
url_list = []  # 热榜链接
category_list = []  # 热榜分类
label_list = []  # 热榜标签

以"热榜标题"字段为例:

for data in json_data['data']:
	# 热榜标题
	title = data['Title']
	print('热榜标题:', title)
	title_list.append(title)

其中,热榜链接比较特殊,接口中返回的url很长,形如:
某个热榜链接

可以看到,url中从?往后,都是不必要的请求参数。

所以,用正则表达式把?后面的全部删掉,提取出id,再进行拼接url,如下:

# 正则表达式提取出链接id
url3 = re.search(r"(?<=https:\/\/www\.toutiao\.com\/trending\/)\d+", url2).group(0)
# 拼接链接
url4 = 'https://www.toutiao.com/trending/' + str(url3)

最后,把所有字段存放的列表数据组成Dataframe格式:

# 把列表数据组装成Dataframe数据
df = pd.DataFrame(
	{
		'热榜排名': range(1, data_num + 1),  # 一共50条
		'热榜标题': title_list,
		'热度值': value_list,
		'热榜标签': label_list,
		'热榜分类': category_list,
		'热榜链接': url_list,
	}
)

进一步保存到csv文件里:

# 保存到csv文件
df.to_csv(result_file, header=True, index=False, encoding='utf_8_sig')

以上,核心逻辑讲解完毕。

代码中还含有:解析热度值、热榜标签、热榜分类、热榜链接字段等,详见文末完整代码。

四、技术总结

爬取技术流程:

  1. requests 发送请求
  2. json 解析数据
  3. re 正则表达式提取文本
  4. pandas 保存csv

五、演示视频

演示视频:
代码演示:用python爬头条热榜TOP50榜单!

六、附完整源码

附完整源码:【爬虫实战】用python爬今日头条热榜TOP50榜单!


我是@马哥python说,一名10年程序猿,持续分享python干货中!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

月木学途开发 1.后台用户模块

概述 权限控制采用springsecurity 数据库设计 用户表 DROP TABLE IF EXISTS admin; CREATE TABLE admin (aid int(32) NOT NULL AUTO_INCREMENT,email varchar(50) DEFAULT NULL,username varchar(50) DEFAULT NULL,password varchar(255) DEFAULT NULL,phoneNum varchar(2…

日主题RiPro主题高端美化/设计素材软件下载站专用子主题/美化包源码(升级版/免拓展)

主题简介 日主题RiPro主题高端美化/设计素材软件下载站专用子主题/美化包源码&#xff0c;这个子主题美化包无授权无暗链&#xff0c;不用再修改原主题代码&#xff0c;在用这个本美化包前要先下载最新ripro主题&#xff0c;本子主题有版本要求&#xff0c;仅支持RiPro8.0以上…

Api接口加密策略

接口安全要求&#xff1a; 1.防伪装攻击&#xff08;案例&#xff1a;在公共网络环境中&#xff0c;第三方 有意或恶意 的调用我们的接口&#xff09; 2.防篡改攻击&#xff08;案例&#xff1a;在公共网络环境中&#xff0c;请求头/查询字符串/内容 在传输过程被修改&#x…

什么是网络安全?网络安全包括哪几个方面?

提及网络安全&#xff0c;很多人都是既熟悉又陌生&#xff0c;所谓的熟悉就是知道网络安全可以保障网络服务不中断。那么到底什么是网络安全?网络安全包括哪几个方面?通过下文为大家介绍一下。 什么是网络安全? 网络安全是指网络系统的硬件、软件及系统中的数据受到保护&a…

无人直播设置必看:手机自动直播有哪些好处?

随着科技的不断发展&#xff0c;手机直播已经成为了人们生活中不可或缺的一部分。手机自动直播作为一种新兴的技术&#xff0c;为我们的生活带来了诸多便利。本文将从以下几个方面阐述手机自动直播的好处。 首先&#xff0c;手机自动直播可以节省时间和精力。传统的直播方式需…

c 语言开发

目录 IOS 开发&#xff1a;c、swift、object-c 第一节 终端生成.c 文件 ​编辑 第二节 常见的数据类型 第三节 运算符、scanf ​编辑 第四节&#xff1a;如何产生随机数 第五节&#xff1a;while 循环 第六节&#xff1a;goto 第七节&#xff1a;函数 ​编辑 第八节…

中移链交易模块介绍

中移链交易模块是中移链区块链系统的核心模块之一。它的主要作用是处理用户发起的交易请求&#xff0c;并将其打包成区块添加到区块链上。交易模块接收来自不同合约执行的指令&#xff0c;比如创建账号、转账、部署和执行智能合约等指令&#xff0c;并确保所有交易都是有效且合…

css实现Chrome标签栏

如图这是一个特殊的带有圆角的导航栏&#xff0c;实现这种效果并不难 这是我实现的效果&#xff1a; 淡一点的就是鼠标悬停的样式 以下是代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><m…

python基于django或flask开发的健身俱乐部网站rix1z

本系统有三个角色&#xff1a;管理员、用户和教练&#xff0c;要求具备以下功能&#xff1a; &#xff08;1&#xff09;用户可以浏览主页了解健身课程、健身器材、会员卡信息、新闻公告等信息&#xff0c;并进行在线留言&#xff1b; &#xff08;2&#xff09;管理员通过后台…

Centos7安装nginx及网页如何放入nginx

Centos7安装nginx及网页如何放入nginx 安装所需的插件 安装gcc gcc是linux下的编译器在此不多做解释&#xff0c;感兴趣的小伙伴可以去查一下相关资料&#xff0c;它可以编译 C,C,Ada,Object C和Java等语言 查看版本 gcc -v如果出现下图就说明是你的Linux有centos 没有的话…

JWT 令牌撤销:中心化控制与分布式Kafka处理

【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 令牌对于安全数字访问至关重要&#xff0c;但如果您需要撤销它们怎么办&#xff1f;尽管我们尽了最大努力&#xff0c;但有时代币可能会被泄露。这可能是由于编码错误、…

vue+springboot,easyexcel的excel文件下载

文章目录 1.效果展示1.1 前端界面1.2 下载的excel 2.思路介绍3.前端代码展示4.后端代码展示5.核心代码解释 1.效果展示 excel文件单一sheet&#xff0c;多sheet导出 本文主要介绍如何使用easyexcel &#xff0c;配合前端导出Excel文件。同时提供Excel的两种导出形式&#xff1a…

《扩散模型 从原理到实战》Hugging Face (二)

第二章 Hugging Face简介 本章无有效内容 第三章 从零开始搭建扩散模型 有时候&#xff0c;只考虑事情最简单的情况反而更有助于理解其工作原理。本章尝试从零开始搭建廓庵模型&#xff0c;我们将从一个简单的扩散模型讲起&#xff0c;了解其不同部分的工作原理&#xff0c;…

Learn Prompt-ChatGPT 精选案例:学习各国语言

过去&#xff0c;我们学语言需要花费很多时间来学习各种材料&#xff0c;再联系老师修改口语、作文等&#xff0c;十分费时费力。有了 ChatGPT 之后&#xff0c;我们就相当于有一个免费的&#xff0c;实时反馈的语言学习助手&#xff0c;大大节省了我们的时间。下面我将以英文的…

如何搭建游戏平台?

搭建游戏平台是一个复杂的任务&#xff0c;涉及多个方面的工作。下面是一些关键步骤和注意事项&#xff0c;以帮助您搭建游戏平台&#xff1a; 平台开发&#xff1a;开发游戏平台的关键部分&#xff0c;包括网站或应用程序的开发、数据库设计、用户界面设计、游戏上传和管理工具…

ipad触控笔有必要买原装吗?开学推荐平价好用的电容笔

在日常生活中&#xff0c;电容笔的用途非常广泛&#xff0c;无论是配上电脑&#xff0c;还是配上iPad平板&#xff0c;亦或是配上手机&#xff0c;都是非常不错的办公利器。首先要明确自己什么使用需求&#xff0c;然后才能选择适合自己需要的电容笔。苹果的Pencil拥有独一无二…

VIOOVI干货分享:什么是SOP?它的六要素是什么?

什么是SOP&#xff0c;SOP就是标准化的作业程序。它以文档的形式&#xff0c;详细的描述操作人员在生产操作过程中的操作步骤和应当遵守的事项&#xff1b;是操作人员的操作说明书&#xff1b;也是检查员指导工作的依据。 SOP的六要素是&#xff1a; 物料名称和数量&#xff1…

linux 解决发现不到的 内存占用率

1、问题浮现 项目做久了&#xff0c;你往往会遇到一些稀奇古怪的问题。下面咱就来聊聊关于内存无故使用率变大的真相。事情是这样的&#xff0c;最近一个客户的服务器&#xff0c;内存使用率在90%左右&#xff0c;这很不正常&#xff0c;导致某云的云安全中心一直报警&#xff…

Jenkins结合Gitlab,实现镜像构建及推送

docker-compose jenkins的docker-compose目录为为/home/jenkins&#xff0c;这个后面写脚本的时候需要对应上 version: 3 services:docker_jenkins:restart: alwaysimage: jenkins/jenkins:ltscontainer_name: docker_jenkinsprivileged: true ports:- 8080:8080- 50000:5000…

面试官:ES6中新增的Set、Map两种数据结构怎么理解?

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 一、Set 增删改查 add() delete() has() clear() 遍历 二、Map 增删改查 size set() get() has() del…