2012-07-13 38 views
0

是否有網站將其標識爲正在訪問它的腳本,儘管更改了我假設的User-Agent頭部並且出現錯誤。網站抓取,機器人身份識別

import urllib,urllib2 
req_headers = {'User-Agent':'Mozilla/5.0'} 
req = urllib2.Request(url,headers = req_headers) 
html = req.open(url) 

如果是,那該怎麼辦?

回答

0

是的。對於初學者來說,使用Firebug等工具瀏覽網頁時,請查看完整的標題。您會注意到普通瀏覽器提供了很多信息,例如urllib未提供的接受的語言。因此,網站可能會檢查是否存在其他標題信息。

另一個竅門是將1x1像素的圖像包含在頁面上,並檢查客戶端是否請求了圖像文件。如果沒有,那麼客戶端正在使用純文本瀏覽器(如lynx)或實際上是一個腳本。我認爲JavaScript也可以用來查找鼠標的存在。

一般來說,這是一個貓和老鼠的遊戲。 urllib的一種替代方法是Selenium。 Selenium將啓動瀏覽器窗口。

0

首先,您的用戶代理程序相當不完整,很容易檢測爲假。

我在我對​​3210的回答中描述了一些機器人檢測技術。