
800819103
在線客服,實時響應
qq群
在線客服,實時響應
客服電話
13318873961
爬蟲需要偽裝,才不被反爬蟲機制發現,通常我們訪問網站是需要經過瀏覽器來訪問的,因此爬蟲也可以偽裝成為瀏覽器訪問網站,那么爬蟲怎么偽裝瀏覽器?
其實在我們打開網站時,瀏覽器會發送一小段信息給網站,我們稱為RequestHeaders,在這個頭部信息里面包含了本次訪問的一些信息,例如編碼方式,當前地址,將要訪問的地址等等。這些信息一般來說是不必要的,但是現在很多網站會把這些信息利用起來。其中最常被用到的一個信息,叫做“User-Agent”。網站可以通過User-Agent來判斷用戶是使用什么瀏覽器訪問。不同瀏覽器的User-Agent是不一樣的,但都有遵循一定的規則。
例如,我們在windows上面的Chrome瀏覽器,它的User-Agent是:
但是如果我們使用Python的Requests直接訪問網站,除了網址不提供其他的信息,那么網站收到的User-Agent是空。這個時候網站就知道我們不是使用瀏覽器訪問的,于是它就可以拒絕我們的訪問。
例如:
沒有User-Agent的情況
有User-Agent的情況
如何獲取網站的User-Agent呢?請打開Chrome,任意打開一個網站,然后右鍵,“檢查”打開開發者工具,定位到“Network”選項卡,并刷新網頁,如下圖所示:
在左下角會出現當前網頁加載的所有元素。隨便點一個元素,于是在右下角會出現對當前元素的請求信息。在里面找到RequestHeaders這一項,里面的內容即為我們需要的內容。
不同的網站,RequestHeaders是不同的
提示:requests的get方法,post方法,Session模塊的get方法,post方法,都支持自定義Headers,參數名為headers,它可以接收字典作為參數。
我們可以通過字典來設定Headers,例如:
在requests中,使用如下代碼來提交Headers:
或者Session模塊:
檢查User-Agent是一種最簡單的反爬蟲機制,而通過設定RequestHeaders中的User-Agent,可以突破這種機制。
通過上文,大家都知道爬蟲怎么偽裝瀏覽器了,不管使用爬蟲去抓取哪些數據,需要用到User-Agent,都可以偽裝成為瀏覽器,可以收集不同版本的瀏覽器User-Agent,不能單使用一個,這樣會增加被發現的風險。