使用Mechanize for Python模拟简单的javascript(location.href =)

时间:2012-10-07 16:26:27

标签: javascript python mechanize

简短:如何执行/模拟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并不承认我来自&#34; www.address1.com&#34;并且脚本无法正常工作!

很抱歉,如果它只是一个新手问题,请提前感谢你!

1 个答案:

答案 0 :(得分: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)