我正在使用python + mechanize,尝试抓取网站。如果我通过链接访问此站点,则会显示登录页面的纯文本版本。这就是我想用刮板看到的东西。所以:

import mechanize

USER_AGENT = "Links (2.3pre1; Linux 2.6.32-5-xen-amd64 x86_64; 80x24)"
mech = mechanize.Browser(factory=mechanize.RobustFactory())
mech.addheaders = [('User-agent', USER_AGENT)]
mech.set_handle_robots(False)

resp = mech.open(URLS['start'])
fnout("001-login.html", resp.read())
resp.close()


fnout只是将字符串转储到文件中。但是,当我打开001-login.html时,整个页面都是单词“ Robot”。没有其他的。

我没有提出任何其他要求。这不像我加载了页面,也没有加载图像,等等。这是我提出的第一个请求,我将User-Agent设置为网站使用的Links版本。我在做什么错(除了尝试抓取一个不想被抓取的网站,就是这样)?

最佳答案

可能还有其他标头正在发送,而links发送的不是Mechanize,反之亦然。按下links和Mechanize并按下http://www.reliply.org/tools/requestheaders.php,查看正在发送的标头。

关于python - 如何避免机器人检测?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10236563/

10-13 03:18