一、爬取目标
本期分享一个爬虫案例,目标是爬取今日头条热榜的榜单数据。 打开首页,在页面右侧会看到头条热榜。 需要爬取以下 6 个关键字段:
- 热榜排名
- 热榜标题
- 热度值
- 热榜标签
- 热榜分类
- 热榜链接
二、技术实现
1. 环境准备
导入需要用到的库:
import requests
import pandas as pd
import re
2. 请求设置
定义请求头(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'
3. 数据获取与解析
使用 requests 发送请求并接收 JSON 数据:
response = requests.get(url, headers=h1)
print(response.status_code)
json_data = response.json()
初始化列表用于存放数据:
title_list = []
value_list = []
url_list = []
category_list = []
label_list = []
遍历数据提取字段:
data_num = len(json_data['data'])
for i, data in enumerate(json_data['data']):
# 热榜排名
rank = i + 1
# 热榜标题
title = data['Title']
title_list.append(title)
# 热度值
value = data['Value']
value_list.append(value)
# 热榜分类
category = data['Category']
category_list.append(category)
# 热榜标签
label = data[]
label_list.append(label)
raw_url = data[]
= re.search(, raw_url)
:
url_id = .group()
final_url = + (url_id)
url_list.append(final_url)
:
url_list.append(raw_url)


