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