Python 爬虫实例(15) 爬取 汽车之家(汽车授权经销商)
有人给我吹牛逼,说汽车之家反爬很厉害,我不服气,所以就爬取了一下这个网址。
本片博客的目的是重点的分析定向爬虫的过程,希望读者能学会爬虫的分析流程。
一:爬虫的目标:
打开汽车之家的链接:https://www.autohome.com.cn/beijing/,出现如下页面
我们的目标是
点击找车,然后出现如下图
我们要把图中的信息抓取到
二:实现过程
我们选择 宝马5系 然后点击找车
注意宝马5系的 data-value 是 65
如下图
因为这个网页需要做翻页,我们就点击翻页。然后抓取到了一个url链接的请求方式。
可以判断出来的是 PageIndex 是页面,表示第几页。SeriesId是车系
直接上代码
#-*-coding:utf-8-*- from common.contest import * def spider(): url = 'https://dealer.autohome.com.cn/frame/Car/CarDealerList' headers = { "Host":"dealer.autohome.com.cn", "Connection":"keep-alive", "Accept":"*/*", "X-Requested-With":"XMLHttpRequest", "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36", "Referer":"https://dealer.autohome.com.cn/frame/car/GetDealerByCar?SeriesId=65&ProvinceId=110000&CityId=110100", "Accept-Encoding":"gzip, deflate, br", "Accept-Language":"zh-CN,zh;q=0.9", "Cookie":"__ah_uuid=B5EFCA0A-C638-43C8-8D4F-1CEB07A1E9BD; fvlid=15275822890176s3cfWZKlL; sessionip=119.61.28.90; area=110199;
ahpau=1; sessionid=FCACBCDA-A005-4F82-8E88-C27091B3A127%7C%7C2018-05-29+16%3A24%3A54.092%7C%7Cwww.baidu.com;
sessionvid=6B39A12E-5580-4522-9800-316DA038715A; sessionuid=FCACBCDA-A005-4F82-8E88-C27091B3A127%7C%7C2018-05-29+16%3A24%3A54.092%7C%7Cwww.baidu.com;
papopclub=0AFEB345FB77A406EFE118CB317CE733; pepopclub=7C16F37F6D8E038ABDFD155664996DA2;
historybbsName4=c-3170%7C%E5%A5%A5%E8%BF%AAA3; pvidlist=7ab2cb54-f4a0-420c-be56-dff130b41d846:149875:216460:0:1:1036776;
mpvareaid=2018278; mallsfvi=15275826304503kGG3Qam%7Cwww.autohome.com.cn%7C2018278; mallslvi=2018278%7Cwww.autohome.com.cn%7C15275826304503kGG3Qam;
Hm_lvt_9924a05a5a75caf05dbbfb51af638b07=1527582690; ahsids=65_2951_3170_4851_59; ahpvno=21;
pvidchain=101061,101061,101061,2018278,3311273,3311273,3311273,3311273,3311273,3311273;
ref=www.baidu.com%7C0%7C0%7C0%7C2018-05-29+17%3A09%3A59.013%7C2018-05-29+16%3A24%3A54.092; Hm_lpvt_9924a05a5a75caf05dbbfb51af638b07=1527585001", } for page in range(1,11): data = { "BrandId":"0", "FactoryId":"0", "SeriesId":"65", "ProvinceId":"110000", "CityId":"110100", "CountyId":"0", "PageIndex":str(page), "DealerKind":"1", } try: result = session.get(url=url,headers=headers,verify=False,params=data).text except: result = session.get(url=url,headers=headers,verify=False,params=data).text print result spider()
在这里不做解析。
三:总结
有人要问了SeriesId = 65怎么处理,这个很简单,把汽车之家所有的车系都封装成一个字典格式数据就可以啦,CityId,ProvinceId 也是同理。
爬虫的难点不是网站的一些反爬措施,而是一个请求有几十个url链接,能准确的找到自己需要的链接,有用的链接才是最重要的。
如果觉得对您有帮助,麻烦您点一下推荐,谢谢!
好记忆不如烂笔头
好记忆不如烂笔头
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库