短い: 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」から来ていることを認識せず、スクリプトが期待どおりに機能しません!
初心者の質問で申し訳ありませんが、よろしくお願いします!
ps私はbr.set_handle_referer(True)を持っています
編集: 詳細: Fiddler2 でそのリンクを調べると、次のようになります。
GET http://www.site2.com/ HTTP/1.1 ホスト: www.site2.com 接続: キープアライブ ユーザーエージェント: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.4 (KHTML、Gecko など) Chrome /22.0.1229.94 Safari/537.4 Accept: text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8 Referer: http://www.address1.com Accept-Encoding: gzip,deflate ,sdch Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q =0.3 Cookie: PHPSESSID=6e161axxxxxxxxxxx; ユーザー=私のユーザー名;
pass=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; 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%
それはクッキーの問題のようですか?