ValueError: No tables found matching pattern '.+' while using pd.read_html()
ValueError: No tables found matching pattern '.+' while using pd.read_html()
我正在使用以下代码从 'Worldometers' 网站抓取数据。直到昨天,代码都运行良好。但是今天它给出了值错误。
我想继续使用 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 '.+'
似乎 pandas 解析标记有问题(即使 html5lib
,这很奇怪)。唯一对我有用的解决方案是这个 "dirty" hack - 将所有标签变成大写:
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]]
我正在使用以下代码从 'Worldometers' 网站抓取数据。直到昨天,代码都运行良好。但是今天它给出了值错误。
我想继续使用 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 '.+'
似乎 pandas 解析标记有问题(即使 html5lib
,这很奇怪)。唯一对我有用的解决方案是这个 "dirty" hack - 将所有标签变成大写:
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]]