Python爬虫从基础到入门:找数据接口

请添加图片描述

1. 怎样判断抓取的数据是动态生成的

请参考文章:Python爬虫从基础到入门:认识爬虫 第3点所讲。
这里用我的CSDN个人主页举例。请添加图片描述
可以说这部分下的内容下的数据是通过数据接口实现的,也就是我们常说的ajax技术(当然这个网站可能用的不是ajax,具体小编不知道,但是和ajax原理一样,可以这么说吧!)请添加图片描述
就是我们点击一下上述这些中的某一项,是重新到服务器拿数据进行渲染的。我们可以这样操作,F12键来到开发者工具,点击网络(Network)下的XHR,把里边的内容删除掉,然后再点击文章,可以发现此时在这下边会多出一些数据接口,如下:
在这里插入图片描述
我们如果想要获取文章这一栏下的文章名称或者其他信息,需要找到具体接口链接即可,如下:
请添加图片描述

2. 用requests模块访问,然后用解析模块解析数据

参考代码为:

import requests

url = 'https://blog.csdn.net/community/home-api/v1/get-business-list'

url2 = 'https://blog.csdn.net/community/home-api/v1/get-business-list?page=1&size=20&businessType=blog&orderby=&noMore=false&year=&month=&username=qq_45404396'
# 访问url2不需要带params
headers = {
    
    
    'user-agent':'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.202.400 QQBrowser/11.9.5355.400'
}
params = {
    
    
    'page': 1,
    'size': 20,
    'businessType': 'blog',
    'noMore': 'false',
    'year': '',
    'month': '',
    'username': 'qq_45404396',
    'orderby': '',
}
rsp = requests.get(url=url,headers=headers,params=params)
print(rsp.text)

请添加图片描述
解析模块用json或者demjson或者其他json数据格式化的模块也行。下面用json模块来解析json数据(json数据,类型Python中的字典数据,但是是字符串形式)

‘{“name”:“liuze”,“age”:23}’

上面这个就是一个json数据,我们用json模块来解析一下就可以把它转换为字典数据,如下:
请添加图片描述
用json模块来解析一下请求这个接口链接成功下的数据,如下:
请添加图片描述

3. 总结

在网页端上如果以后通过第1点所讲找不到对应数据,那么就去找对应接口,这个接口一般在Network下的XHR或JS下,不同网站可能有所不同(一般在XHR下)。
请添加图片描述
下次讲解在script标签下的json数据该如何获取并解析

猜你喜欢

转载自blog.csdn.net/qq_45404396/article/details/134375069