限制網絡爬蟲的方法有很多。為了操作方便,網絡爬蟲也可以偽裝用戶。通常的方法是把自己偽裝成瀏覽器。為什么呢?
用戶代理參數,簡稱UA,用于指示請求運營商的身份。如果我們通過瀏覽器發起請求,請求的載體就是當前瀏覽器,UA參數的值表示當前瀏覽器身份所代表的一系列數據。如果我們使用爬蟲發起的請求,那么請求的載體就是爬蟲,請求的UA就是爬蟲身份所代表的一串數據。
有些網站會通過識別請求的UA來識別請求的載體是否是爬蟲。如果是爬蟲,不會對請求返回響應,那么我們的爬蟲就無法通過請求抓取網站中的數據值,這也是反爬蟲的一個首要技術手段。所以,為了防止這個問題,我們可以把爬蟲的UA偽裝成瀏覽器的身份。
當網站檢查你是真的被瀏覽器訪問還是機器自動訪問時,我們可以添加User-Agent來顯示你是被瀏覽器訪問的。
服務器將識別標題中的引用者是否是它自己。如果沒有,一些服務器將不會響應,所以我們也可以在標題中添加引用。以谷歌瀏覽器的開發者工具為例(右鍵勾選或Ctrl+Shift+I),刷新頁面,在網絡模塊中,我們可以點擊左側名稱中的項目,看到一些信息,其中可以看到Referer和User-Agent的信息,并進行復制。
偽裝的格式是:
方法1:使用請求模塊。
方法2:使用urllib模塊。
這樣,如果網絡爬蟲偽裝成瀏覽器,效果會好很多,爬行也不會停止。當然,要注意一些行為,避免被發現。