2017-05-08 3 views
1
url="https://technet.microsoft.com/enus/library/hh135098(v=exchg.150).aspx" 
r = requests.get(url) 
soup = BeautifulSoup(r.content, 'lxml') 
table = soup.find_all('table', attrs={"responsive": "true"})[0] 
for rows in table.find_all('tr')[1:2]: 
    item = [] 
    for val in rows.find_all('td'): 
     item.append(val.text.strip())` 

Ich versuche, dies durch 4 verschiedene Tabellen auf der gleichen Website, aber ich kann nicht herausfinden, wie man die Schleife schreiben. Ich habe Forschung darüber getan und kann nicht herausfinden, was zu tun istPython: Scrapping durch mehrere Tabellen

Die 4 Tabellen sind an den Standorten 0, 1, 2 und 6. Ich habe versucht, die Daten zu schneiden, um sie aufzunehmen, aber nichts scheint zu obwohl bei Auftreten Index verlassen

desired_indexes = {0, 1, 2, 6} 
tables = soup.find_all('table', attrs={"responsive": "true"}) 
for index, table in enumerate(tables): 
    if index not in desired_indexes: 
     continue 

    # do something with table 

im allgemeinen: wollen

Antwort

2

Sie arbeiten können alle Tabellen gefunden, die Ihren Filterkriterien finden, verwenden enumerate() die Indizes und „herauszufiltern“ Tabellen an unerwünschten Indizes zu erhalten eines Elements auf einer Seite klingt nicht wie eine zuverlässige Technik, um ein Element auf einer Seite zu finden.

+0

Glücklicherweise ändern sich diese Indizes nicht, und diese Skripts werden nur einmal pro Monat ausgeführt, sie haben eine niedrige Priorität. Sie müssen nur arbeiten. Das hat perfekt funktioniert, danke –