Как программно получить страницы истории редактирования из MusicBrainz с помощью Python?

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

  •  10-12-2019
  •  | 
  •  

Вопрос

Я пытаюсь программно получить страницы истории редактирования с веб-сайта MusicBrainz.(musicbrainzngs — это библиотека для веб-службы MB, и история редактирования недоступна из веб-службы).Для этого мне нужно войти на сайт МБ, используя свое имя пользователя и пароль.

Я пробовал использовать mechanize модуль и, используя вторую форму страницы входа (первая — форма поиска), я отправляю свое имя пользователя и пароль;судя по ответу, я успешно захожу на сайт;однако дальнейший запрос на страницу истории редактирования вызывает исключение:

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')]

Имейте в виду, что, делая это, вы на самом деле обманом заставляете веб-сайт думать, что вы являетесь действительным клиентом.

Другие советы

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top