Ich versuche zu kratzen Diese Seite, und ich möchte alle Anker-Tags überprüfen.
Ich habe beautifulsoup 4.3.2 importiert und hier ist mein Code:
url = """http://www.civicinfo.bc.ca/bids?pn=1"""
Html = urlopen(url).read()
Soup = BeautifulSoup(Html, "html.parser")
Content = Soup.find_all("a")
Mein Problem ist, dass Inhalt immer leer ist (d. H. Content = []). Hat jemand irgendwelche Ideen?
Antworten:
2 für die Antwort № 1Von die Dokumentation html.parser
ist vor bestimmten Versionen von Python nicht sehr nachsichtig. Sie sehen sich also wahrscheinlich falsch formatiertes HTML an.
Was Sie tun möchten, funktioniert, wenn Sie verwenden lxml
Anstatt von html.parser
Von die Dokumentation:
Trotzdem gibt es Dinge, die Sie tun können, um zu beschleunigenup Schöne Suppe. Ob Wenn Sie nicht lxml als zugrunde liegenden Parser verwenden, ist mein Ratschlag, zu beginnen. Beautiful Soup analysiert Dokumente mit lxml bedeutend schneller als mit html.parser oder html5lib.
Der relevante Code wäre also:
Soup = BeautifulSoup(Html, "lxml")