Pythonを使用してMusicBrainzからプログラム的に編集履歴ページを取得する方法は?
-
10-12-2019 - |
質問
MusicBrainzのWebサイトから編集履歴ページをプログラム的に取得しようとしています。(musicbrainzngs
はMB Webサービス用のライブラリであり、履歴履歴はWebサービスからアクセスできません)。このためには、ユーザー名とパスワードを使用してMBのWebサイトにログインする必要があります。
mechanize
モジュールを使用してみました。また、ログインページの2次フォームを使用してください(最初のものが検索フォームです)、私のユーザー名とパスワードを送信します。応答から、私はサイトに正常にログインしているようです。ただし、編集履歴ページへのさらなる要求は例外を発生させる:
mechanize._response.httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt
.
私はそれの例外とその理由を理解しています。サイトを乱用していないことに対して完全な責任を取ります(結局のところ、使い方がユーザー名でタグ付けされます)、手動でページを開いて、HTMLを保存し、保存されたHTMLでスクリプトを実行してください。403エラーを克服できますか?
解決
サイトのrobots.txt
を回避したい場合は、mechanize.Browser
ファイルを無視するようにrobots.txt
に指示することでこれを実現できます。
br = mechanize.Browser()
br.set_handle_robots(False)
.
さらに、ロボットのように見えないようにブラウザのユーザーエージェントを変更したい場合があります。
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
.
これをするときは、実際にあなたが有効なクライアントです。
他のヒント
より良い解決策は、robots.txtファイルを尊重し、単に編集データ自体をダウンロードし、スクレープスコアブラブレインツをスクレインススクレインツではありません。あなたはここで完全な編集履歴をロードすることができます:
所属していません StackOverflow