【问题标题】:ValueError: No tables found matching pattern '.+' while using pd.read_html()ValueError:使用 pd.read_html() 时未找到匹配模式“.+”的表
【发布时间】:2020-05-29 11:00:57
【问题描述】:

我正在使用以下代码从“Worldometers”网站上抓取数据。该代码直到昨天都运行良好。但是今天它给出了 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】:

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

    【讨论】:

    • 非常感谢。它有效。但仍然想知道,为什么它直到昨天才工作,但从今天开始抛出错误。
    猜你喜欢
    • 2020-07-18
    • 2018-12-22
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 2020-11-14
    • 2018-04-12
    • 2020-09-29
    相关资源
    最近更新 更多