ValueError:使用pd.read_html()时未找到与模式“+”匹配的表

2024-06-28 11:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用以下代码从“WorldMeters”网站上获取数据。到昨天为止,代码一直运行良好。但今天,它给出的值是错误的

我想继续使用urllib Request and urlopen函数。感谢您对问题所在的任何意见。我仍然可以使用BeautifulSoup提取数据,如果没有解决方案,我会这样做

from urllib.request import Request, urlopen
req = Request('https://www.worldometers.info/coronavirus/', headers={'User-Agent': 'Firefox/76.0.1'})
webpage = urlopen(req).read()

tables = pd.read_html(webpage)


ValueError: No tables found matching pattern '.+'

Tags: and函数代码readtables网站request错误
1条回答
网友
1楼 · 发布于 2024-06-28 11:30:15

pandas似乎在解析标记时有问题(即使使用html5lib,这很奇怪)。唯一对我有效的解决方案是这个“肮脏”的黑客——将所有标签都变成大写:

import re
from urllib.request import Request, urlopen
req = Request('https://www.worldometers.info/coronavirus/', headers={'User-Agent': 'Firefox/76.0.1'})

webpage = re.sub(r'<.*?>', lambda g: g.group(0).upper(), urlopen(req).read().decode('utf-8') )
tables = pd.read_html(webpage)
print(tables)

印刷品:

[      #  Country,Other  TotalCases NewCases  TotalDeaths NewDeaths  TotalRecovered  ... TotalTests  Tests/ 1M pop  Population          Continent  1 Caseevery X ppl  1 Deathevery X ppl  1 Testevery X ppl
0   NaN  North America     1985234   +4,047     120653.0      +479        624697.0  ...        NaN            NaN         NaN      North America                NaN                 NaN                NaN
1   NaN  South America      758107     +619      36746.0       +13        320826.0  ...        NaN            NaN         NaN      South America                NaN                 NaN                NaN
2   NaN         Europe     1979601   +9,702     171874.0      +306        958874.0  ...        NaN            NaN         NaN             Europe                NaN                 NaN                NaN
3   NaN           Asia     1067485  +16,219      29382.0      +262        627546.0  ...        NaN            NaN         NaN               Asia                NaN                 NaN                NaN
4   NaN         Africa      132254     +667       3819.0        +5         55257.0  ...        NaN            NaN         NaN             Africa                NaN                 NaN                NaN
..   ..            ...         ...      ...          ...       ...             ...  ...        ...            ...         ...                ...                ...                 ...                ...
226 NaN         Total:     1067485  +16,219      29382.0      +262        627546.0  ...        NaN            NaN         NaN               Asia                NaN                 NaN                NaN
227 NaN         Total:      132254     +667       3819.0        +5         55257.0  ...        NaN            NaN         NaN             Africa                NaN                 NaN                NaN
228 NaN         Total:        8782      +23        125.0       NaN          8164.0  ...        NaN            NaN         NaN  Australia/Oceania                NaN                 NaN                NaN
229 NaN         Total:         721      NaN         15.0       NaN           651.0  ...        NaN            NaN         NaN                NaN                NaN                 NaN                NaN
230 NaN         Total:     5932184  +31,277     362614.0    +1,065       2596015.0  ...        NaN            NaN         NaN                All                NaN                 NaN                NaN

[231 rows x 19 columns],       #  Country,Other  TotalCases  NewCases  TotalDeaths NewDeaths  TotalRecovered  ... TotalTests  Tests/ 1M pop  Population          Continent  1 Caseevery X ppl  1 Deathevery X ppl  1 Testevery X ppl
0   NaN           Asia     1051266   +25,111      29120.0      +439        621744.0  ...        NaN            NaN         NaN               Asia                NaN                 NaN                NaN
1   NaN  North America     1981187   +28,561     120174.0    +1,828        622301.0  ...        NaN            NaN         NaN      North America                NaN                 NaN                NaN
2   NaN  South America      757488   +37,855      36733.0    +1,303        320777.0  ...        NaN            NaN         NaN      South America                NaN                 NaN                NaN
3   NaN         Europe     1969899   +19,816     171568.0      +937        948496.0  ...        NaN            NaN         NaN             Europe                NaN                 NaN                NaN
4   NaN         Africa      131587    +4,949       3814.0      +104         55126.0  ...        NaN            NaN         NaN             Africa                NaN                 NaN                NaN
..   ..            ...         ...       ...          ...       ...             ...  ...        ...            ...         ...                ...                ...                 ...                ...
226 NaN         Total:     1969899   +19,816     171568.0      +937        948496.0  ...        NaN            NaN         NaN             Europe                NaN                 NaN                NaN
227 NaN         Total:      131587    +4,949       3814.0      +104         55126.0  ...        NaN            NaN         NaN             Africa                NaN                 NaN                NaN
228 NaN         Total:        8759       +12        125.0        +1          8155.0  ...        NaN            NaN         NaN  Australia/Oceania                NaN                 NaN                NaN
229 NaN         Total:         721       NaN         15.0       NaN           651.0  ...        NaN            NaN         NaN                NaN                NaN                 NaN                NaN
230 NaN         Total:     5900907  +116,304     361549.0    +5,677       2577250.0  ...        NaN            NaN         NaN                All                NaN                 NaN                NaN

[231 rows x 19 columns],       #  Country,Other  TotalCases  NewCases  TotalDeaths NewDeaths  TotalRecovered  ... TotalTests  Tests/ 1M pop  Population          Continent  1 Caseevery X ppl  1 Deathevery X ppl  1 Testevery X ppl
0   NaN           Asia     1026155   +23,237      28681.0      +466        604064.0  ...        NaN            NaN         NaN               Asia                NaN                 NaN                NaN
1   NaN  North America     1952626   +26,248     118346.0    +2,183        610327.0  ...        NaN            NaN         NaN      North America                NaN                 NaN                NaN
2   NaN  South America      719633   +35,891      35430.0    +1,506        287501.0  ...        NaN            NaN         NaN      South America                NaN                 NaN                NaN
3   NaN         Europe     1950083   +16,002     170631.0    +1,030        931561.0  ...        NaN            NaN         NaN             Europe                NaN                 NaN                NaN
4   NaN         Africa      126638    +5,091       3710.0       +97         52623.0  ...        NaN            NaN         NaN             Africa                NaN                 NaN                NaN
..   ..            ...         ...       ...          ...       ...             ...  ...        ...            ...         ...                ...                ...                 ...                ...
226 NaN         Total:     1950083   +16,002     170631.0    +1,030        931561.0  ...        NaN            NaN         NaN             Europe                NaN                 NaN                NaN
227 NaN         Total:      126638    +5,091       3710.0       +97         52623.0  ...        NaN            NaN         NaN             Africa                NaN                 NaN                NaN
228 NaN         Total:        8747        +6        124.0        +1          8129.0  ...        NaN            NaN         NaN  Australia/Oceania                NaN                 NaN                NaN
229 NaN         Total:         721       NaN         15.0       NaN           651.0  ...        NaN            NaN         NaN                NaN                NaN                 NaN                NaN
230 NaN         Total:     5784603  +106,475     356937.0   +10,960       2494856.0  ...        NaN            NaN         NaN                All                NaN                 NaN                NaN

[231 rows x 19 columns]]

相关问题 更多 >