Skip to main content
 首页 » 编程设计

python之如何避免机器人检测

2025年05月04日16duanxz

我正在使用 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 时,整个页面都是“机器人”一词。没有别的。

我没有提出任何其他要求。这不像我加载了页面但没有加载图像,或者其他什么。这是我提出的第一个请求,我将 User-Agent 设置为该网站所使用的链接版本。我做错了什么(除了试图抓取一个不想被抓取的网站之外)?

请您参考如下方法:

links 可能发送了 Mechanize 没有发送的其他 header ,反之亦然。打起来http://www.reliply.org/tools/requestheaders.php同时使用 links 和 Mechanize 并查看正在发送的 header 。