1

short: JavaScript リダイレクトを実行/シミュレートする方法

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

python Mechanize で?

ページ内のリンクを探してそれをたどる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

Try adding

br.set_handle_referer(True)

after the constructor call.

I recommend you these options :

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 に答える