2016-06-12 4 views
1

Ich versuche, alle Team-Team-Informationen und die Punktzahl, die unter einer Show-Taste unter Verwendung dieser URL http://www.gosugamers.net/counterstrike/teams/7397-natus-vincere/matches versteckt ist. Ich versuche, Opp 1 gegen Opp 2 und das Ergebnis des Spiels zu bekommen .. Das ist, was ich bisher für dieses Problem habe.Wie bekommt man Team Text und Score mit Beautiful Suppe mit Python?

def all_match_outcomes(): 

    for match_outcomes in all_match_history_url(): 
     page = requests.get(match_outcomes).content 
     soup = BeautifulSoup(page, 'html.parser') 

     for match_outcome in soup.select_one('div table.simple.gamelist.profilelist td'): 
      opp_1 = match_outcome.select_one('a').find('span') 
      print(opp_1) 
+0

Bitte extrahieren zeigen, was Code, den Sie bisher haben und was nicht Arbeiten. – alecxe

+0

Ist es klar genug oder sollte ich den gesamten Code hinzufügen? – DJRodrigue

Antwort

2

Das Spiel Ergebnis unter der verborgenen Spanne ist (gut, es gibt keine „versteckte“ ist für BeautifulSoup, ist es nicht ein Browser). Die Heimwertung liegt in der span mit hscore Klasse, die weg ist - in der span mit ascore Klasse. Die Team-Namen sind unter inneren span Elemente innerhalb span Elemente mit opp1 und opp2 Klassen. Umsetzung:

import requests 
from bs4 import BeautifulSoup 


match_outcomes = "http://www.gosugamers.net/counterstrike/teams/7397-natus-vincere/matches" 
page = requests.get(match_outcomes).content 
soup = BeautifulSoup(page, 'html.parser') 

for row in soup.select('table.simple.gamelist.profilelist tr'): 
    opp1 = row.find("span", class_="opp1").span.get_text() 
    opp2 = row.find("span", class_="opp2")("span")[-1].get_text() 

    opp1_score = row.find("span", class_="hscore").get_text() 
    opp2_score = row.find("span", class_="ascore").get_text() 

    print("%s %s:%s %s" % (opp1, opp1_score, opp2_score, opp2)) 

Drucke:

Virtus.Pro.CS 2:1 Natus Vincere 
Dobry&Gaming; 0:2 Natus Vincere 
GODSENT 0:2 Natus Vincere 
HellRaisers 0:2 Natus Vincere 
Flipsid3 Tactics 1:2 Natus Vincere 
Natus Vincere 1:2 Dobry&Gaming; 
mousesports.CS 1:0 Natus Vincere 
mousesports.CS 0:1 Natus Vincere 
... 
Natus Vincere 2:1 Flipsid3 Tactics 
Team Dignitas.CS 0:1 Natus Vincere 
+0

Ich versuche auch, beide Teamnamen anzuzeigen, es gibt 2 Span-Tags und der Teamtext befindet sich in der zweiten Spanne. Wie würde ich die Teamnamen bekommen? – DJRodrigue

+0

@DJRodrigue es ist schon da in der Antwort, aktualisiert es vor 10 Minuten, um die Team-Namen auch zu bekommen. Ich hoffe es hilft. – alecxe

+0

Ja, tut mir leid, ich habe nicht aktualisiert. Vielen Dank ! – DJRodrigue

-1

Zeigen Sie die Quelle der Seite und Sie werden sehen, dass alle Informationen, die Sie brauchen, in einer Tabelle simple gamelist profilelist mit der Klasse ist.

Lesen Sie die Beautiful Soup Documentation und vor allem die Suche Methode.

Try-Muster in der HTML-Quelle zu finden und Sie werden, wie schnell herauszufinden, jede Tabelle Daten iterieren (<td>) und wie Teams usw.