Ich benutze BeautifulSoup, um einen bestimmten Text aus Wikipedia's Infoboxen (Einnahmen) zu extrahieren. Mein Code funktioniert, wenn der Umsatztext in einem "a" -Tag ist. Leider haben nicht alle Seiten ihre Einnahmen in einem "a" -Tag aufgelistet. Manche haben ihren Umsatztext beispielsweise nach "span" -Tags. Ich habe mich gefragt, wie der beste/sicherste Weg wäre, den Ertragstext für eine Liste von Unternehmen zu bekommen. Würde ein anderes Tag anstelle von "a" am besten funktionieren? Oder etwas anderes? Danke für Ihre Hilfe.Was ist der beste Weg, um bestimmten Text aus der Wikipedia Infobox mit BeautifulSoup und Listen zu extrahieren?
company = ['Lockheed_Martin', 'Phillips_66', 'ConocoPhillips', 'Sysco', 'Baker_Hughes']
for c in company:
r = urllib.urlopen('https://en.wikipedia.org/wiki/' + c).read()
soup = BeautifulSoup(r, "lxml")
rev = re.compile('^Revenue')
thRev = [e for e in soup.find_all('th', {'scope': 'row'}) if rev.search(e.text)][0]
tdRev = thRev.find_next('td')
revenue = tdRev.find_all('a')
for f in revenue:
print c + " " + f.text
break
Können Sie 2 URL Beispiele zur Verfügung stellen? –
Ja! Es tut uns leid. https://en.wikipedia.org/wiki/Lockheed_Martin, https://en.wikipedia.org/wiki/Phillips_66 – SallyH
In beiden Beispielen ist der Umsatz nicht in einem 'a'-Tag. –