easy_read_html.py
import pandas as pd
url = 'http://www.example.com'
df = pd.read_html(url)
Weil es schief gelaufen ist.
first.py
import pandas as pd
url = 'https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Italy'
df=pd.read_html(url)
Nachdem die Tabelle extrahiert wurde, dachte ich, es sei "Pandas" und schloss morgen meinen Computer.
ValueError: invalid literal for int() with base 10: '2;'
Und nur ein Fehler. Selbst wenn Sie anaconda hier neu installieren, ändert sich die Situation nicht. Installieren Sie daher das Betriebssystem neu. Das Ergebnis ändert sich nicht: cry:
requests_bs.py
import requests
import pandas as pd
from bs4 import BeautifulSoup
url = 'https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Italy'
res = requests.get(url)
soup = BeautifulSoup(res.content, "lxml")
data=soup.find_all('table', {"wikitable mw-collapsible"})
Am Ende ist es unvermeidlich, Informationen aus dem WEB zu erhalten, da diese von "Pandas" gepflegt werden, also Anfragen und [Schöne Suppe] ](Https://qiita.com/itkr/items/513318a9b5b92bd56185)
df = pd.read_html(data) Wenn Sie glauben, dass Sie damit weitermachen können, kann TypeError: nicht aus "ResultSet" analysiert werden
Wenn Sie mit "Daten" überprüfen
[<table class="wikitable mw-collapsible" style="float:left; text-align:right; font-size:83%;">
<caption style="font-size:116%"><span class="nowrap">Daily COVID-19 cases in Italy by region ...
Und listenartig pd.read_html(data[0]) Wenn Sie sich "data [0]" ansehen, handelt es sich um HTML in der Tabelle. Wenn Sie also den obigen Befehl "TypeError:" NoneType "-Objekt können nicht aufgerufen werden" Ich weiß nicht warum das passiert: weinen:
Wenn ich mit "Nicht-Typ" -Objekt gegoogelt habe, ist pandas read_html nicht aufrufbar, habe ich das Ergebnis von stackoverflow erhalten, also habe ich es versucht, aber es wurde gelöscht. Ist die Liste nutzlos?
Nachdem ich mit den oben genannten Schlüsselwörtern gesucht hatte, fand ich endlich einen Weg zur Arbeit. https://teratail.com/questions/188717
type(data)
Da es sich um bs4.element.ResultSet handelt, wurde es nicht zu einem Argument von read_html
, wie es ist (wie es scheint).
wiki_get.py
import requests
import pandas as pd
from bs4 import BeautifulSoup
url = 'https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Italy'
res = requests.get(url)
soup = BeautifulSoup(res.content, "lxml")
data=soup.find_all('table', {"wikitable mw-collapsible"})
df = pd.read_html(str(data), keep_default_na=False)[0]
df=df.iloc[:,0:28]
df.columns=['Date','VDA','LIG','PIE','LOM','VEN','TN','BZ','FVG','EMR','MAR','TOS','UMB','LAZ','ABR','MOL','CAM','BAS','PUG','CAL','SIC','SAR','ConfirmedNew','ConfirmedTotal','DeathsNew','DeathsTotal','ActiveICU','ActiveTotal']
daf=df[df['Date'].str.contains('^2020')]
daf.to_csv('Splunk_COVID19_Italy.csv', index=False)
https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Italy
Ich extrahiere die Tabelle nach Region oben und bringe sie zu CSV.
df = pd.read_html(str(data), keep_default_na=False)[0]
Wenn Sie str
verwenden, wird es in str type konvertiert, sodass Sie es als Argument für read_html
verwenden können.
Da es sich bei der Rückgabe um eine Liste handelt, können Sie das erste Ergebnis extrahieren.
df=df.iloc[:,0:28]
Die Spalte ist die 28. Zeile von Anfang an
daf=df[df['Date'].str.contains('^2020')]
Erforderliche Spalten sind Date Spalten, die mit 2020 beginnen
Da str.contains
nicht für DataFrame type als Ganzes verwendet werden kann, wird der Spaltenname angegeben.
daf.to_csv('Splunk_COVID19_Italy.csv', index=False)
Löschen Sie die Indexnummer, da dies bei der Ausgabe von CSV nicht erforderlich ist
https://python-forum.io/Thread-table-from-wikipedia Nachdem ich immer gemacht habe ...: weinen:
https://qiita.com/Retsuki/items/88eded5e61af200305fb Cool arbeiten: lächeln:
Splunks Website-Eingabe funktionierte nicht, und als ich ihn googelte, erschien der Artikel über "Pandas" Das ist einfach / Ich bin mir wegen eines Berges von Fehlern nicht sicher, wenn ich es mit Gott versuche Infolgedessen ist der Weg nach Python lang
Recommended Posts