【爬虫实战】用python爬今日头条热榜TOP50榜单! | 您所在的位置:网站首页 › 今日头条新闻大事件邹城 › 【爬虫实战】用python爬今日头条热榜TOP50榜单! |
文章目录
一、爬取目标二、爬取结果三、代码讲解四、技术总结五、演示视频六、附完整源码
一、爬取目标
您好!我是@马哥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"(? |
CopyRight 2018-2019 实验室设备网 版权所有 |