ValueError: не найдено таблиц, соответствующих шаблону '. +' При использовании pd.read_ html () - PullRequest
1 голос
/ 29 мая 2020

Я использую следующий код для очистки данных с веб-сайта Worldometer. Код работал нормально до вчерашнего дня. Но сегодня он дает ошибку 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 '.+'

1 Ответ

1 голос
/ 29 мая 2020

Похоже, что 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]]
...