我有一个带表格的html文件。(维基百科链接) 我正在尝试使用熊猫访问表。
我的代码是:
dfs=pd.read_html(url1)
for i in range(0,5):
print(dfs[i])
这在熊猫版本0.23.0中有效
,但在0.23.4版本上无效。 我得到了错误
dfs=pd.read_html(url1)
File "C:\ProgramData\Anaconda2\lib\site-packages\pandas\io\html.py", line 987, in read_html
displayed_only=displayed_only)
File "C:\ProgramData\Anaconda2\lib\site-packages\pandas\io\html.py", line 815, in _parse
raise_with_traceback(retained)
File "C:\ProgramData\Anaconda2\lib\site-packages\pandas\io\html.py", line 797, in _parse
tables = p.parse_tables()
File "C:\ProgramData\Anaconda2\lib\site-packages\pandas\io\html.py", line 213, in parse_tables
tables = self._parse_tables(self._build_doc(), self.match, self.attrs)
File "C:\ProgramData\Anaconda2\lib\site-packages\pandas\io\html.py", line 471, in _parse_tables
raise ValueError('No tables found')
ValueError: No tables found
如何解决这个问题
答案 0 :(得分:0)
在大熊猫上使用漂亮的肥皂
import pandas as pd
import requests
from bs4 import BeautifulSoup
res = requests.get("https://en.wikipedia.org/wiki/List_of_bicycle-sharing_systems")
soup = BeautifulSoup(res.content,'html.parser')
table = soup.find_all('table')[0]
df = pd.read_html(str(table))
此语法使用默认的html.parser。您可以使用其他解析器之一(首先需要使用pip安装它们):
lxml
lxml-xml / xml
html5lib