Beautiful soup è ancora probabilmente la soluzione migliore.
Se è necessario "supporto JavaScript" per intercettare le richieste Ajax, è necessario utilizzare anche una sorta di acquisizione (come YATT) per monitorare quali sono tali richieste e quindi emularle/analizzarle.
Se hai bisogno di "supporto JavaScript" per poter vedere quale sia il risultato finale di una pagina con JavaScript statico, allora la mia prima scelta sarebbe cercare di capire cosa sta facendo JavaScript su un case- caso per caso (ad es. se JavaScript sta facendo qualcosa in base ad alcuni Xml, quindi semplicemente analizza direttamente l'Xml)
Se si desidera veramente il "supporto JavaScript" (come in si desidera vedere cos'è l'html dopo gli script sono stati eseguiti su una pagina), quindi penso che sarà probabilmente necessario creare un'istanza di controllo del browser, quindi leggere il risultante html/dom dal controllo del browser una volta terminato il caricamento e analizzarlo normalmente con una bella zuppa. Questa sarebbe la mia ultima risorsa comunque.
Un sacco di risposte utili su domande simili qui: http://stackoverflow.com/search?q=scraping+python – 3zzy
Duplicazione esatta: http://stackoverflow.com/questions/2081586/web-scraping-with-python –
non è un duplicato esatto. Questo menziona JavaScript, che richiede strumenti diversi rispetto a quando si lavora con HTML statico. – hoju