2016-03-26 8 views
1

リダイレクト後にページのアドレスを取得したいと思います。私は、次のコードリダイレクトされたURLをpythonで取得する3

url = 'https://simple.wikipedia.org/wiki/Gcd' 
print(urlopen(url).geturl()) 

を持っている。しかし、それはhttps://simple.wikipedia.org/wiki/Greatest_common_divisorを印刷する必要がありながら、それは、https://simple.wikipedia.org/wiki/Gcdを印刷し、動作しません。

それで問題は何ですか?

答えて

1

実際には問題ありません。 https://simple.wikipedia.org/wiki/Gcdを開いたときに得られるURLは、正確にそのURLであるです。 URLを変更する唯一の方法はリダイレクトであり、そのURLからの応答を見ると、200個のステータスコードが返されることがわかります。したがって、リダイレクトはありません。

ただし、ブラウザでURLを開くと、URLはhttps://simple.wikipedia.org/wiki/Greatest_common_divisorに変更されます。リダイレクトがない場合、これはどのように起こりますか?

これは実際には、History APIを使用してブラウザのURLを書き換える新しいMediaWiki機能です。これはブラウザに表示されているURLを置き換えますが、実際には新しいリクエストや真のHTTPリダイレクトは必要ありません。

JavaScriptが有効になっている最新のブラウザでのみ機能する機能です。そうでなければ、あなたはGcd URLにとどまります。これは古いバージョンのMediaWikiの動作です。

この新しいMediaWiki機能の詳細については、Phabricator task T37045をご覧ください。

「問題」に関しては、MediaWiki APIを使用してMediaWikiと通信することを検討してください。このページは、ページがリダイレクトされたときにも表示されます。

関連する問題