Come recuperare programmaticamente le pagine della cronologia di modifica da Musicbrainz usando Python?
-
10-12-2019 - |
Domanda
Sto cercando di recuperare programmaticamente la modifica delle pagine della cronologia dal sito Web Musicbrainz.(musicbrainzngs
è una libreria per il servizio Web MB e la cronologia di modifica non è accessibile dal servizio Web).Per questo, ho bisogno di accedere al sito Web MB usando il mio nome utente e password.
Ho provato a utilizzare il modulo mechanize
e utilizzando il modulo Second Pagina di accesso (prima è il modulo di ricerca), invio del mio nome utente e password;Dalla risposta, sembra che io possa accedere con successo al sito;Tuttavia, un'ulteriore richiesta a una pagina della storia di modifica solleva un'eccezione:
mechanize._response.httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt
.
Capisco l'eccezione e la ragione per questo.Prendo piena responsabilità per non aver abusato del sito (dopotutto, qualsiasi utilizzo verrà taggato con il mio nome utente), voglio solo evitare manualmente aprendo una pagina, salvando l'HTML e eseguire uno script sull'HTML salvato.Posso superare l'errore 403?
Soluzione
Se si desidera aggirare il robots.txt
del sito, è possibile ottenere ciò, dicendo al tuo mechanize.Browser
di ignorare il file robots.txt
.
br = mechanize.Browser()
br.set_handle_robots(False)
.
Inoltre, potresti voler modificare l'agente utente del tuo browser in modo da non sembrare un robot:
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')]
.
Si prega di essere consapevoli che quando lo fai, stai effettivamente ingannando il sito web nel pensare che tu sia un cliente valido.
Altri suggerimenti
La soluzione migliore è rispettare il file robots.txt e semplicemente scaricare i dati di modifica in sé e non sullo schermo MusicBrainz.Puoi scaricare la cronologia modifica completa qui:
ftp://ftp.musicbrainz.org/pub/musicbrainz/data/fullexport