Sto imparando a creare web scrapers e voglio rasentare TripAdvisor per un progetto personale, afferrando l'html usando urllib2. Tuttavia, sto riscontrando un problema in cui, utilizzando il codice riportato di seguito, l'html che ottengo non è corretto poiché la pagina sembra impiegare un secondo per reindirizzare (è possibile verificare ciò visitando l'URL), ma ottengo il codice dalla pagina che inizialmente appare brevemente.python urllib2 - attendi che la pagina finisca il caricamento/reindirizzamento prima dello scraping?
C'è qualche comportamento o parametro da impostare per assicurarsi che la pagina abbia completato il caricamento/reindirizzamento prima di ottenere il contenuto del sito web?
import urllib2
from bs4 import BeautifulSoup
bostonPage = urllib2.urlopen("http://www.tripadvisor.com/HACSearch?geo=34438#02,1342106684473,rad:S0,sponsors:ABEST_WESTERN,style:Szff_6")
soup = BeautifulSoup(bostonPage)
print soup.prettify()
Edit: La risposta è completa, tuttavia, alla fine ciò che ha risolto il mio problema era questo: https://stackoverflow.com/a/3210737/1157283
doesnt urllib generare un errore? c'è un redirectdirector per questi casi ... –
@DonQuestion Nessun errore, ho appena ricevuto l'html dalla pagina che appare brevemente prima di essere reindirizzato. Voglio il codice HTML dalla pagina che appare alla fine. Cos'è questo redirectdirector, puoi elaborare? – Ken
se usi urlopen, stai usando OpenerDirector.open() guarda i python-docs - sfortunatamente non è spiegato in 2-3 parole :-(: http://docs.python.org/library/urllib2.html? highlight = urllib2 # urllib2.OpenerDirector –