Pythonを使用してMusicBrainzからプログラム的に編集履歴ページを取得する方法は?

StackOverflow https://stackoverflow.com//questions/9645426

  •  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ファイルを尊重し、単に編集データ自体をダウンロードし、スクレープスコアブラブレインツをスクレインススクレインツではありません。あなたはここで完全な編集履歴をロードすることができます:

ftp://ftp.musicbrainz.org/pub/musicbrainz/data/fullexport

ファイルmbdump-edit.tar.bz2を探します。

そして、ミュージックブレインツチームのリーダーとして、robots.txtを尊重して編集データをダウンロードするように頼みたいと思います。それは私たちが編集データをダウンロード可能にする理由の1つです。

ありがとう!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top