Python – Anfänger Schaben mit schöner Suppe 4 – onmouseover

Ich bin ein Anfänger-Python (3) Benutzer und ich versuche derzeit, einige Sport-Statistiken für meine Fantasy-Fußball-Saison zu kratzen. Früher habe ich dies in einer runden Weise gemacht (Herunterladen in HT-Track, Umwandlung in Excel und mit VBA, um meine Daten zu kombinieren). Aber jetzt versuche ich, Python zu lernen, um meine Codierungsfähigkeiten zu verbessern.

Ich möchte diese Seite kratzen, aber in Schwierigkeiten bei der Auswahl nur der Zeilen / Tabellen, die ich will. Hier ist, wie mein Code derzeit steht. Es hat noch ein bisschen Code, wo ich versucht habe, mit ihm herumzuspielen.

from urllib.request import urlopen # import the library from bs4 import BeautifulSoup # Import BS from bs4 import SoupStrainer # Import Soup Strainer page = urlopen('http://www.footywire.com/afl/footy/ft_match_statistics?mid=6172') # access the website only_tables = SoupStrainer('table') # parse only table elements when parsing soup = BeautifulSoup(page, 'html.parser') # parse the html # for row in soup('table',{'class':'tbody'}[0].tbody('tr')): # tds = row('td') # print (tds[0].string, tds[1].string) # create variables to keep the data in team = [] player = [] kicks = [] handballs = [] disposals = [] marks = [] goals = [] tackles = [] hitouts = [] inside50s = [] freesfor = [] freesagainst = [] fantasy = [] supercoach = [] table = soup.find_all('tr') # print(soup.prettify()) print(table) 

Im Moment kann ich alle 'Tr' von der Seite auswählen, aber ich habe Schwierigkeiten, nur die Zeilen auszuwählen, die das folgende Attribut haben:

 <tr bgcolor="#ffffff" onmouseout="this.bgColor='#ffffff';" onmouseover="this.bgColor='#cbcdd0';"> 

"Onmouseover" scheint das einzige Attribut zu sein, das gemeinsam / einzigartig für den Tisch ist, den ich kratzen möchte.

Weiß jemand, wie ich diese Codezeile ändern kann, um dieses Attribut zu wählen?

 table = soup.find_all('tr') 

Von hier aus bin ich zuversichtlich, dass ich die Daten in ein Dataframe platzieren kann, das ich hoffentlich in CSV exportieren kann.

Jede Hilfe wäre sehr dankbar, da ich die BS4-Dokumentation ohne Glück gesehen habe.

2 Solutions collect form web for “Python – Anfänger Schaben mit schöner Suppe 4 – onmouseover”

Wie auf der Dokumentation von BeautifulSoup erläutert

Sie können dies verwenden:

 table = soup.findAll("tr", {"bgcolor": "#ffffff", "onmouseout": "this.bgColor='#ffffff'", "onmouseover": "this.bgColor='#cbcdd0';"}) 

Mehr können Sie auch den folgenden Ansatz verwenden:

 tr_tag = soup.findAll(lambda tag:tag.name == "tr" and tag["bgcolor"] == "#ffffff") and tag["onmouseout"] = "this.bgColor='#ffffff'" and tag["onmouseover"] = "this.bgColor='#cbcdd0';" 

Der Vorteil des oben genannten Ansatzes ist, dass es die volle Kraft von BS nutzt und es gibt Ihnen das Ergebnis in einer sehr optimierten Weise

Überprüfen Sie dies :

 soup.find_all("tr", attrs={"onmouseover" : "this.bgColor='#cbcdd0';"}) 
  • Kratzen google resultstats mit python
  • Wie man eine Webseite mit CSS und HTML mit python analysiert
  • Versuchen eines verschachtelten Kratzen mit BeautifulSoup
  • Finde und liste spezifische Links in einer Webseite mit Python
  • Wie man Kinder von Knoten mit schönen Suppe findet
  • BeautifulSoup - alle Links in einem Stück HTML ändern?
  • Intelligenteste Weg, um riesige Mengen an Daten zu speichern
  • BeautifulSoup - Suche nach Text innerhalb eines Tags
  • Python regelmäßiger Ausdruck für schöne Suppe
  • Schöne Suppe und Unicode Probleme
  • Schöne Suppe bekommt keine vollständige Webseite
  • Python ist die beste Programmiersprache der Welt.