Ich versuche BeautifulSoup zu verwenden, um den Inhalt von einer Website zu extrahieren (http://brooklynexposed.com/events/). Als ein Beispiel für das Problem, das ich den folgenden Code ausführen kann:BeautifulSoup nicht extrahieren alle HTML (automatisch löschen viel von einer Seite html)
import urllib
import bs4 as BeautifulSoup
url = 'http://brooklynexposed.com/events/'
html = urllib.urlopen(url).read()
soup = BeautifulSoup.BeautifulSoup(html)
print soup.prettify().encode('utf-8')
Der Ausgang der html abzuschneiden scheint wie folgt:
<li class="event">
9:00pm - 11:00pm
<br/>
<a href="http://brooklynexposed.com/events/entry/5432/2013-07-16">
Comedy Sh
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</body>
</html>
Es wird die Liste mit den Namen Comedy Show abschneidet entlang mit allen html, die bis zum finalen schließenden tag kommen. Die Mehrheit des HTML wird automatisch entfernt. Ich habe ähnliche Dinge auf zahlreichen Webseiten bemerkt, dass, wenn die Seite zu lang ist, BeautifulSoup die gesamte Seite nicht analysiert und nur Text ausschneidet. Hat jemand eine Lösung dafür? Wenn BeautifulSoup nicht in der Lage ist, solche Seiten zu bearbeiten, kennt jemand andere Bibliotheken mit ähnlichen Funktionen wie prettify()?
Ihr Code funktioniert für mich ganz gut. Wenn der Netzwerktransfer an genau diesem Punkt unterbrochen wurde (also wurde nur bis "Comedy Sh" geladen), dann wird der HTML-Parser alle noch offenen Tags "schließen" und Sie sehen genau, was Sie bekommen haben. –
Für mich ist der gesamte Inhalt da. Beginnen Sie mit Ihrem Code, um das 'suppen'-Objekt zu erzeugen:' '> len (Unicode (Suppe)) 'gibt' 107578' zurück Welche Version von BS verwenden Sie? Ich benutze 4.2.0. –
Interessant, ich habe 4.2.1 mit Python 2.7 verwendet. Wenn ich 3,2 benutze, scheint es zu funktionieren. Es konnte kein Timeout-Problem sein, denn wenn ich den ursprünglichen HTML-Code in eine Datei druckte, erschien der gesamte Text. Irgendwelche anderen Ideen für eine Lösung für 2.7? Sonst ist es an der Zeit, meinen Code zu portieren. – user2540231