easy_read_html.py
import pandas as pd
url = 'http://www.example.com'
df = pd.read_html(url)
Parce que ça a mal tourné.
first.py
import pandas as pd
url = 'https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Italy'
df=pd.read_html(url)
Maintenant que la table a été extraite, j'ai pensé que c'était "pandas`" et j'ai fermé mon ordinateur demain.
ValueError: invalid literal for int() with base 10: '2;'
Et il n'y a qu'une erreur. Même si vous réinstallez anaconda ici, la situation ne change pas, alors réinstallez le système d'exploitation. Le résultat ne change pas: pleurez:
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"})
En fin de compte, il est inévitable d'obtenir des informations sur le WEB car elles seront prises en charge par les pandas
, donc requêtes et [Beautiful Soup] ](Https://qiita.com/itkr/items/513318a9b5b92bd56185)
df = pd.read_html(data)
Si vous pensez que vous pouvez aller avec ceci, TypeError: cannot parse from'ResultSet'
Si vous vérifiez avec data
[<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 ...
Et comme une liste
pd.read_html(data[0])
Si vous regardez data [0]
, c'est Html dans la table, donc si vous essayez la commande ci-dessus, TypeError: 'NoneType' object is not callable
Je ne sais pas pourquoi cela arrive: pleure:
Quand j'ai googlé avec `` l'objet 'nonetype' n'est pas appelable pandas read_html '', j'ai obtenu le résultat de stackoverflow, donc je l'ai essayé, mais il a été effacé. La liste est-elle inutile?
Après avoir cherché avec les mots-clés ci-dessus, j'ai finalement trouvé un moyen de travailler. https://teratail.com/questions/188717
type(data)
Puisqu'il s'agit de bs4.element.ResultSet, il n'est pas devenu un argument de read_html
tel qu'il est (il semble)
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
J'extrais le tableau par région dans ce qui précède et l'amène au format CSV.
df = pd.read_html(str(data), keep_default_na=False)[0]
Si vous utilisez str
, il sera converti en str type, vous pouvez donc l'utiliser comme argument de read_html
.
Puisque le retour est une liste, vous pouvez extraire le premier résultat.
df=df.iloc[:,0:28]
La colonne est la 28e ligne depuis le début
daf=df[df['Date'].str.contains('^2020')]
Les colonnes obligatoires sont des colonnes Date commençant par 2020
Puisque str.contains
ne peut pas être utilisé pour le DataFrame type dans son ensemble, le nom de la colonne est spécifié.
daf.to_csv('Splunk_COVID19_Italy.csv', index=False)
Supprimer le numéro d'index car il n'est pas nécessaire lors de la sortie de CSV
https://python-forum.io/Thread-table-from-wikipedia Après avoir toujours fait ...: pleurer:
https://qiita.com/Retsuki/items/88eded5e61af200305fb Travaillez cool: sourire:
[Entrée de site Web] de Splunk (https://splunkbase.splunk.com/app/1818/) ne fonctionnait pas, et quand je l'ai googlé, l'article sur pandas
C'est facile / je ne suis pas sûr à cause d'une montagne d'erreurs quand j'essaye avec Dieu
En conséquence, le chemin vers Python est long
Recommended Posts