利用Python抓取获取口碑频道SUV紧凑型车全部的数据.md
1.介绍项目
2.分析网站结构
3.说明技术选择
4.excel表格构建字段
1. 介绍项目
利用Python抓取获取口碑频道SUV紧凑型车全部的数据(车名,价格,特点,评分)
网址:https://k.autohome.com.cn/suva1/#pvareaid=6848948
2. 分析网站结构
首先进入汽车之家,在口碑频道选择SUV紧凑型车
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Drd92zO-1666849876603)(file:///C:\Users\16611\AppData\Local\Temp\ksohtml\wpsC4E1.tmp.jpg)]
鼠标右键,点击检查,再点击网络,刷新,点击出现的第一个数据包,发现该url请求方式是使用get请求
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FKPeKUEo-1666849876604)(file:///C:\Users\16611\AppData\Local\Temp\ksohtml\wpsC4E2.tmp.jpg)]
分析url所在的数据包,发现该数据包有所需数据,则准备进行抓取
目标url:https://k.autohome.com.cn/suva1/#pvareaid=6848948
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rJyi1xFN-1666849876605)(file:///C:\Users\16611\AppData\Local\Temp\ksohtml\wpsC4E3.tmp.jpg)]
3. 说明技术选择
该网页将用request抓取所需数据
观察和浏览目标url所在页,发现SUV紧凑型车仅有这一页,也就是说抓取数据时不用更换页码参数
#该url不需要更改任何参数
url='https://k.autohome.com.cn/suva1/#pvareaid=6848948'
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SZWag4iq-1666849876606)(file:///C:\Users\16611\AppData\Local\Temp\ksohtml\wpsC4E4.tmp.jpg)]
选中汽车名称这一元素,跳转至该位置,右键复制其xpath,并将其粘贴到插件xpath上,即可检查是否是所需数据,最后发现就是所需数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kec58fxg-1666849876607)(file:///C:\Users\16611\AppData\Local\Temp\ksohtml\wps9594.tmp.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MBiGgWXl-1666849876608)(file:///C:\Users\16611\AppData\Local\Temp\ksohtml\wpsC4F5.tmp.jpg)]
用xpath提取单个汽车链接(此时的链接还不完整,后续还要补充完整链接)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ARoj9MS3-1666849876609)(file:///C:\Users\16611\AppData\Local\Temp\ksohtml\wpsD42C.tmp.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sGg78l0u-1666849876609)(file:///C:\Users\16611\AppData\Local\Temp\ksohtml\wpsC4F6.tmp.jpg)]
修改xpath,获取这一页所有SUV紧凑型车各汽车链接
import requests
from lxml import etree
url='https://k.autohome.com.cn/suva1/#pvareaid=6848948'
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.73'
}
res=requests.get(url,headers=headers)
print(res)#响应200
#将html字符串转换为element
html=etree.HTML(res.text)
hrefs=html.xpath('/html/body/div[2]/div[2]/div/div/div[2]/dl/dd/ul/li[*]/div[2]/a/@href')
print(hrefs)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PeWDzXFY-1666849876610)(file:///C:\Users\16611\AppData\Local\Temp\ksohtml\wps50A6.tmp.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qd0SsPPL-1666849876610)(file:///C:\Users\16611\AppData\Local\Temp\ksohtml\wpsC4F7.tmp.jpg)]
补全每一个链接并一一发送请求,用xpath提取所需数据
for href in hrefs:
#补全每一个链接
new_url="https://k.autohome.com.cn"+href
print(new_url)
#对每个遍历的汽车链接发送请求,获取数据
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.73'
}
res2