自动抓取网页数据(如何使用Python和pandas库从web页面获取表数据?)

优采云 发布时间: 2021-12-16 10:17

  自动抓取网页数据(如何使用Python和pandas库从web页面获取表数据?)

  如今,人们可以随时随地连接到互联网。Internet 可能是最大的公共数据库。学习如何从 Internet 获取数据很重要。因此,有必要了解如何使用Python和pandas库从网页中获取表格数据。另外,如果您已经在使用 Excel PowerQuery,这相当于“从 Web 获取数据”功能,但这里的功能要强大 100 倍。

  从网站获取数据(网络爬虫)

  HTML 是每个 网站 背后的语言。当我们访问一个网站时,发生的事情是这样的:

  1.在浏览器地址栏中输入地址(URL),浏览器就会向目标网站的服务器发送请求。

  2. 服务器接收到请求,并发送回构成网页的 HTML 代码。

  3.浏览器接收HTML代码,动态运行,创建一个网页供我们查看。

  网页抓取基本上是指我们可以不使用浏览器,而是使用 Python 向 网站 服务器发送请求,接收 HTML 代码,然后提取所需的数据。

  这里不会涉及太多HTML,只介绍一些关键点,让我们对网站和网页抓取的工作原理有一个基本的了解。HTML 元素或“HTML 标签”被特定的关键字包围。比如下面的HTML代码就是网页的标题,将鼠标悬停在网页中的标签上,浏览器会看到相同的标题。请注意,大多数 HTML 元素需要一个开始标记(例如,)和相应的结束标记(例如,)。

  Python pandas获取网页中的表格数据(网络爬虫)

  同样,下面的代码会在浏览器上画一个表格,你可以尝试将它复制粘贴到记事本中,然后将其保存为“table example.html”文件,你应该可以在浏览器中打开它。简要说明如下:

  

用户姓名

国家

城市

性别

年龄

Forrest Gump

USA

New York

M>

50

Mary Jane

CANADA

Toronto

F

30

  使用pandas进行网络爬虫的要求

  学习了 网站 的基本构建块以及如何解释 HTML(至少是表格部分!)。这里之所以只介绍HTML表格,是因为大多数时候,我们尝试从网站中获取数据时,都是表格形式的。pandas 是从 网站 获取表格格式数据的完美工具!

  因此,使用 pandas 从 网站 获取数据的唯一要求是数据必须存储在表格中,或者用 HTML 术语存储在...标签中。pandas 将能够使用我们刚刚介绍的 HTML 标签提取表格、标题和数据行。

  如果您尝试使用 Pandas 从不收录任何表格(...标记)的网页中“提取数据”,您将无法获得任何数据。对于那些没有存储在表中的数据,我们需要其他方法来抓取网站。

  网页抓取示例

  我们之前的例子大多是一些数据点很少的小表,我们用稍微大一点的数据来处理。

  我们将从百度百科获取最新的世界500强企业名称及相关信息:

  %E4%B8%96%E7%95%8C500%E5%BC%BA/640042?fr=阿拉丁

  图1(如果有错误,根据错误提示处理。我电脑没有安装lxml,安装后正常)

  上面的df其实是一个列表,很有意思……列表里好像有3个项目。让我们看看pandas为我们采集了哪些数据...

  图2

  第一个数据框df[0]好像和这个没有关系,而是页面爬取的第一个表。查看网页,可以知道这张表是在中国举办的财富全球论坛。

  图 3

  第二个数据框 df[1] 是本页的另一个表格。请注意,在它的末尾,这意味着有 [500 行 x 6 列]。这张表是世界财富500强的排名表。

  图 4

  第三个数据框 df[2] 是页面上的第三个表,最后是 [110 行 x 5 列]。本表为上榜中国企业名单。

  请注意,始终检查 pd.read_html() 返回的内容,一个网页可能收录多个表,因此您将获得数据框列表而不是单个数据框!

  注:本文借鉴自。

  请在下方留言完善本文内容,让更多人学习到更完善的知识。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线