ValueError: 在使用pd.read_html()时,没有找到与模式'.+'匹配的表。

问题描述 投票:1回答:1

我正在使用下面的代码从 "世界计 "网站上刮取数据。这段代码直到昨天还能正常工作。但今天却出现了Value错误。

我想继续使用 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 '.+'
python web-scraping request urllib urlopen
1个回答
1
投票

似乎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)

Prints:

[      #  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]]
© www.soinside.com 2019 - 2024. All rights reserved.