0

是否有网站将其标识为正在访问它的脚本,尽管我假设更改了 User-Agent 标头并给出错误。

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

如果是,那怎么办?

4

2 回答 2

0

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

我在回答投票比赛中的作弊者时描述了一些机器人检测技术。

于 2012-07-13T14:14:12.083 回答
0

是的。对于初学者,在使用 Firebug 之类的工具浏览网页时,请查看完整的标题。您会注意到普通浏览器提供了很多信息,例如接受的语言,而urllib. 因此,网站可能会检查是否存在其他标头信息。

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

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

于 2012-07-13T14:16:02.257 回答