Python web crawler(3)json异步加载的格式
异步加载的特点
- 点击“查看更多”等按钮,浏览器“刷新”按钮无反馈效果。
- 查看浏览器点击F12的“DevTools”开发者工具,点选“网络”——“Fetch/XHR”——每点击一次“加载更多”就会出现一次网络请求
- 点击刷新出来的“请求内容”——点击“响应”,可以看到响应的是“字典”
- 点击标头,查看请求格式“get”或者是“post”,以及请求刷新的“URL”
json文件异步加载格式
import requests
# 异步加载数据的接口
url = ''
headers = {
'User-Agent': '****************************',
'Cookie': '********************************',
'Referer': '*******************************',
}
response = requests.get(url, headers=headers)
data = response.json() # 会直接返回字典 但是需要注意 如果返回数据中不是json数据 则会报错
print(data['items']) # 获取当前字典里面的items数据
# 测试没问题后,循环拿取需要的数据
for line in data['items']:
try:
print(line['title'])
print(line['pic']['normal'])
print(line['uri'])
print("评分:", line['rating']['value'])
print(line['card_subtitle'])
print()
except:
pass
- 请求头部有“Referer:”就需要带着“Referer:”(这是防盗链),把它也放在headers里
- 一般情况下,我们都使用data = response.json() 直接返回字典 但是需要注意 如果返回数据中不是json数据 则会报错
- 你也可以用data = response.text 还需要json.loads()进行解码,记得使用import json导入模块
- 拿到字典里的列表后data['items']可以用以下代码方式,仅读取一条(退出for循环),方便对代码进行分析。
data = response.json() print(data['items']) # 获取当前字典里面的items数据 # 测试没问题后,循环拿取需要的数据 for line in data['items']: print(line) exit()
- 更重要的是配合“预览”功能,对JSON格式里的“字典”进行框架分析。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)