2012-07-13 26 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的回答中描述了一些机器人检测技术。