1

简短:如何执行/模拟 javascript 重定向

location.href="http://www.site2.com/";

与 python 机械化?

我制作了一个带有 mechanize 模块的 python 脚本,它在页面中查找链接并遵循它。

问题出在一个特定的网站上,当我这样做时

br.follow_link("http://www.address1.com") 

他将我重定向到这个简单的页面:

<script language="JavaScript">{                                                                                         
    location.href="http://www.site2.com/";                                                                                           
    self.focus();                                                                                                                   
    }</script>

现在,如果我这样做:

br = mechanize.Browser(factory=mechanize.RobustFactory())

... #other code

br.follow_link("http://www.address1.com") 
for link in br.links():   
br.follow_link(link)
print link

它不打印任何东西,这意味着该页面中没有链接。

但是如果我手动解析页面并执行:

br.open("http://www.site2.com")

Site2 无法识别我来自“www.address1.com”,并且该脚本无法正常工作!

抱歉,如果这只是一个新手问题,请提前感谢您!

4

1 回答 1

0

尝试添加

br.set_handle_referer(True)

在构造函数调用之后。

我向您推荐以下选项:

br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
于 2012-10-07T23:19:12.713 回答