寫爬蟲程序應該注意的問題

我們知道,網絡爬蟲是一種按照一定的規則,自動地抓取網站信息的程序或者腳本。那麼,我們怎麼通過網絡爬蟲獲取所需要的網站信息呢?
不同的網站有不同的規則,爬蟲工程師根據這些規則設計不同的網絡爬蟲,以此來順利獲取所需要的信息。
一、開放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效果非常差,不建議使用)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章