【问题标题】:Read HTML Function Failed to Crawl Pokemongo Data Tables读取 HTML 函数无法抓取 Pokemongo 数据表
【发布时间】:2020-07-08 05:43:50
【问题描述】:

我正在尝试通过抓取表格来练习使用 pandas 中的 read_html 函数,但出现错误。我的代码如下:

import pandas as pd
url = "https://www.pokemondb.net/pokedex/all"
dfs = pd.read_html(url)

上面的代码返回错误并没有成功,所以我尝试了下面的代码,但它仍然不起作用。

from bs4 import BeautifulSoup
import pandas as pd
import requests
url = "https://www.pokemondb.net/pokedex/all"
html = requests.get(url)
soup = BeautifulSoup(html.text, "html.parser")
dfs = pd.read_html(soup.table)

我不完全知道出了什么问题。有人能告诉我吗?

谢谢!

【问题讨论】:

  • 什么错误?始终提出完整的错误消息(作为文本,而不是图像)。不要指望我们会运行代码来查看您的错误。并且代码可以在我们的计算机上无错误地运行。
  • 我对@9​​87654323@没有BeautifulSoup没有问题

标签: python pandas dataframe beautifulsoup python-requests


【解决方案1】:

read_html 的文档中,您可以看到它不适用于https

所以你的第一个版本证实了这一点。


在第二个版本中你不需要BeautifulSoup

read_html() 使用自己的 bs4lxmlhtml5 - 请参阅文档选项 flavor 以选择它。

import requests
import pandas as pd

url = "https://www.pokemondb.net/pokedex/all"
html = requests.get(url)

dfs = pd.read_html(html.text)

print(dfs)

【讨论】:

    【解决方案2】:

    希望对你有帮助。

    table = soup.findAll('table', attrs={'id':'pokedex'}) 
    

    然后将表格转换为字符串。

     dfs = pd.read_table(str(table)) 
    

    它会给你一个输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 2023-03-10
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多