2017-05-12 2 views
0

Ich verwende das Modul BeautifulSoup, um eine HTML-Datei zu analysieren, von der ich bestimmte Informationen extrahieren möchte. Insbesondere Spielstände und Teamnamen.findAll wird leer für html zurückgegeben

Wenn ich jedoch die findAll-Funktion verwenden, gibt es kontinuierlich leer für eine Zeichenfolge, die sicherlich innerhalb des HTML ist. Wenn jemand erklären kann, was ich falsch mache, wird es sehr geschätzt. Siehe Code unten.

import urllib 
import bs4 
import re 
from urllib.request import urlopen as uReq 
from bs4 import BeautifulSoup as soup 

my_url = 'http://www.foxsports.com/mlb/scores?season=2017&date=2017-05-09' 
uClient = uReq(my_url) 
page_html = uClient.read() 
uClient.close() 
# html parser 
page_soup = soup(page_html, "html.parser") 
container = page_soup.findAll("div",{"class":"wisbb_teams"}) 
print(len(container)) 
+0

Diese wörtliche, 'wisbb_teams', scheint nicht für' my_url' überhaupt in der HTML zu erscheinen. –

+0

Irgendwas Glück beim Schaben? – Nevermore

Antwort

1

Ich denke, die Syntax Ihre Verwendung ist die alte Version von BeautifulSoup, versuchen Sie stattdessen so etwas wie find_all snake_case (siehe die docs)

from bs4 import BeautifulSoup 
# ... 
page_html = uClient.read() 
page_soup = BeautifulSoup(page_html, "html.parser") 
list_of_divs = page_soup.find_all("div", class_="wisbb_name") 
print(len(list_of_divs)) 

Die ältere API verwendet Camelcase, aber BS4 verwendet snake_case

Auch Hinweis, dass find_all dauert kann einenehmenParameter zu finden von Klasse.

Sehen Sie diese Antwort, https://stackoverflow.com/a/38471317/4443226, für ein paar mehr Infos

Auch für die korrekten Klassennamen stellen Sie sicher, Sie suchen! Ich sehe nicht, die Klasse Sie suchen, sondern diese:

enter image description here

+0

Hey danke! Kann ich fragen, wie Sie die potenziellen Klassen mit Wisbb finden konnten? Zumindest wenn ich das Element auf der Seite überprüfe, existiert eine solche Klasse. Weißt du, warum das der Fall ist? Die Informationen, die ich möchte, sind in vielen Klassen innerhalb des HTML verschachtelt, ist das möglicherweise, warum ich es nicht finden kann? –

+0

Ich habe dieses Bild nur von der Verwendung der firefox Inspektionskonsole, und Suche nach diesem String Wisbb :) Ich sehe keine wisb_teams – Nevermore

+0

Und hey, wenn diese Antwort richtig und nützlich ist, markieren Sie es als akzeptiert, so dass andere Leute können finde es später :) – Nevermore

Verwandte Themen