大眾點評爬蟲,大眾點評爬蟲封賬號
任務
采集
私信小編01即可獲取大量Python學習資料
1. 發現網址規律url
能否成功采集某網站,該網站需要滿足兩個條件
我們有權限瀏覽
我們肉眼能在瀏覽器中看到
滿足這兩個條件后,我們就可以尋找網址規律。
一般簡單的網站只需要看看翻頁和網址欄即可,有難度的就需要使用開發者工具。
template = &39;for page in range(1, 51): url = template.format(page=page) print(url)
....
2. 嘗試對其中一個url進行訪問
先局部,后整體(先小后大)
首先爬大眾點評有兩種方式 http://www.dianping.com/shop/14686875 直接爬店鋪 大家一看這個uri 可能都明白了吧 直接一個for 循環 14686875 一般來說 一個商鋪大概是三個url 初步估計應該是 330萬的商家左右 (理想狀態。
我們需要先拿一個url測試訪問成功與否。
import requestsurl = &39;User-Agent&39;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'}resp = requests.get(url, headers=headers)print(resp)
用前嗅的ForeSpider數據采集工具,可以完整采集大眾點評網的數據。軟件可以抽取出所有的鏈接地址,通過url或標題特征,過濾掉無關的鏈接地址。對于數據結果,通過可視化的配置,可以完整的采集所有的公開可見內容。軟件自帶免費的千萬。
response200說明訪問似乎還是正常的,但是不要掉以輕心,最好順便檢查下返回的網頁源代碼數據。
檢查方法
resp.text
3. 解析數據
?
?
from pyquery import PyQuerydoc = PyQuery(resp.text)for block in doc.items(&39;): name = block(&39;).text() loc = block(&39;).text() quyu = loc.split(&39;)[0] distance = loc.split(&39;)[-1] print(name, quyu, distance)
上海佘山世茂洲際酒店 松江區 距離松江站9.6km
上海和平飯店 南京東路 距離和平飯店30m
上海寶格麗酒店 大悅城 距離天潼路地鐵站175m
上海迪士尼樂園酒店 迪士尼 距離迪士尼地鐵站710m
上海外灘W酒店 北外灘/外白渡橋 距離國際客運中心地鐵站205m
上海也山花園酒店(崇明森林公園店) 東平森林公園 1km內無地鐵站
大眾點評哈,你就手動點擊幾次他都會封你ip的。我采集過,封的很厲害,使用代理ip采集吧
上海外灘華爾道夫酒店 外灘 距離威斯汀大酒店340m
上海半島酒店 外灘 距離和平飯店285m
可以使用八爪魚采集軟件對大眾點評網上的商家信息進行采集。具體的采集方法可以參考這個八爪魚采集大眾點評網的百度經驗:http://jingyan.baidu.com/article/bad08e1ef4aff109c85121ac.html 。
御宿和庭酒店 梅川路 距離中環百聯400m
上海外灘悅榕莊酒店 北外灘/外白渡橋 距離提籃橋地鐵站440m
上海魯能JW萬豪侯爵酒店 塘橋 距離塘橋地鐵站870m
上海浦東香格里拉大酒店 陸家嘴 距離正大廣場180m
上海浦東麗思卡爾頓酒店 陸家嘴 距離國金中心35m
養云安縵酒店 閔行區 距離松江站12.1km
上海怡沁園度假村 東平森林公園 1km內無地鐵站
4. 存儲數據
1、放慢爬取速度,減小對于目標網站造成的壓力。但是這樣會減少單位時間類的爬取量。第二種方法是通過設置IP等手段,突破反爬蟲機制繼續高頻率爬取。網站的反爬機制會檢查來訪的IP地址,為了防止IP被封,這時就可以使用HTTP,。
推薦大家用csv存儲
5. 整合
前面幾個步驟都成功后,我們可以把1-4整理合并成一個完整的代碼。
復制粘貼代碼時要注意代碼層次。
版權聲明:本站文章均來源于網絡,如有侵權請聯系刪除!