网站抓取,机器人识别

时间:2012-07-13 14:06:45

标签: python authentication urllib

是否存在将其识别为正在访问它的脚本的网站,尽管我更改了User-Agent标头,我认为这样并且出错。

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

如果是,那怎么样?

2 个答案:

答案 0 :(得分:0)

首先,您的用户代理非常不完整,很容易被检测为假的。

我在回答Hunting cheaters in a voting competition时描述了一些机器人检测技术。

答案 1 :(得分:0)

是。首先,使用像Firebug这样的工具浏览网页时查看完整的标题。您会注意到普通浏览器提供了很多信息,例如urllib未提供的语言。因此,网站可能会检查是否存在其他标题信息。

另一个技巧是在页面上包含1x1像素图像,并检查客户端是否请求了图像文件。如果没有,那么客户端正在使用纯文本浏览器(如lynx)或实际上是一个脚本。我认为JavaScript也可用于寻找鼠标的存在。

一般来说,这是一场猫捉老鼠的游戏。 urllib的一种替代方法是Selenium。 Selenium将启动一个浏览器窗口。