【发布时间】:2012-10-15 06:31:12
【问题描述】:
简短:如何使用 python Mechanize 执行/模拟 javascript 重定向?
location.href="http://www.site2.com/";
我制作了一个带有 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”,并且该脚本无法正常工作!
对不起,如果这只是一个新手问题,提前谢谢你!
附言我有 br.set_handle_referer(True)
编辑:更多信息: 检查与 Fiddler2 的链接看起来像:
GET http://www.site2.com/ HTTP/1.1 主机:www.site2.com 连接: keep-alive 用户代理:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.4(KHTML,如 Gecko)Chrome/22.0.1229.94 Safari/537.4 接受: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 引用者:http://www.address1.com 接受编码:gzip,deflate,sdch 接受语言:it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4
接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Cookie: PHPSESSID=6e161axxxxxxxxxxxxx;用户=我的用户名;
通过=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; ip=79.xx.xx.xx;
代理=a220243a8b8f83de64c6204a5ef7b6eb; __utma=154746788.943755841.1348303404.1350232016.1350241320.43; __utmb=154746788.12.10.1350241320; __utmc=154999999; __utmz=154746788.134999998.99.6.utmcsr=google|utmccn=(有机)|utmcmd=有机|utmctr=%something%something%
看来是cookie问题?
【问题讨论】:
-
快速检查一下,你不是为了滥用推荐奖金而将其机械化吗?
-
URL 是变化了还是总是一样?
-
不,我没有滥用任何推荐。此外:“location.href”中的地址没有改变,但另一个是。简而言之:www.site2.com 是静态的,www.address1.com 是动态的。谢谢你的回答!
-
很酷,这意味着您不必从 Javascript 中抓取
site2的 URL。
标签: javascript python mechanize referer