有人給我吹牛逼,說汽車之家反爬很厲害,我不服氣,所以就爬取了一下這個網址。
本片博客的目的是重點的分析定向爬蟲的過程,希望讀者能學會爬蟲的分析流程。
一:爬蟲的目標:
打開汽車之家的鏈接: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鏈接,能准確的找到自己需要的鏈接,有用的鏈接才是最重要的。