1. 程式人生 > >如何通過網絡爬蟲獲取網站數據

如何通過網絡爬蟲獲取網站數據

發送 selenium 很多 api 我們 靜態頁 策略 平臺 不同

我們知道,網絡爬蟲是一種按照一定的規則,自動地抓取網站信息的程序或者腳本。那麽,我們怎麽通過網絡爬蟲獲取所需要的網站信息呢?
不同的網站有不同的規則,爬蟲工程師根據這些規則設計不同的網絡爬蟲,以此來順利獲取所需要的信息。
一、開放API的網站
一個網如果開放了API,那麽就可以直接GET到它的json數據。有三種方法可以判斷一個網站是否開放了API。
1、在站內尋找API入口;
2、用搜索引擎搜索“某網站API”;
3、抓包,有的網站雖然用到了ajax,但是通過抓包還是能夠獲取XHR裏的json數據的(可用抓包工具抓包,也可以通過瀏覽器按F12抓包:F12-Network-F5刷新)。
二、不開放API的網站
1、如果網站是靜態頁面,那麽可以用requests庫發送請求,再通過HTML解析庫(lxml、parsel等)來解析響應的text;解析庫強烈推薦parsel,不僅語法和css選擇器類似,而且速度也挺快,Scrapy用的就是它。
2、如果網站是動態頁面,可以先用selenium來渲染JS,再用HTML解析庫來解析driver的page_source。
三、反爬蟲網站
很多網站都具有反爬蟲策略,常見的有:驗證碼、登陸、限制IP等。
1、驗證碼。可以利用打碼平臺破解(如果硬上的話用opencv或keras訓練圖);
2、登陸。利用requests的post或者selenium模擬用戶進行模擬登陸;
3、限制IP。購買億牛雲代理IP(免費IP效果非常差,不建議使用)。

如何通過網絡爬蟲獲取網站數據