python网页数据抓取(如何使用Python和pandas库从web页面获取表数据?)
优采云 发布时间: 2022-02-26 19:07python网页数据抓取(如何使用Python和pandas库从web页面获取表数据?)
今天,人们可以随时随地连接到互联网。互联网可能是最大的公共数据库。学习如何从 Internet 获取数据至关重要。因此,有必要了解如何使用 Python 和 pandas 库从网页中获取表格数据。此外,如果您已经在使用 Excel PowerQuery,这相当于“从 Web 获取数据”功能,但在这里它的功能要强大 100 倍。
从 网站 获取数据(网络抓取)
HTML 是每个 网站 背后的语言。当我们访问 网站 时,会发生以下情况:
1.在浏览器地址栏中输入地址(URL),浏览器向目标网站的服务器发送请求。
2.服务器接收请求并返回构成网页的 HTML 代码。
3.浏览器接收到 HTML 代码,动态运行它,并创建一个网页供我们查看。
Web 抓取基本上意味着,我们可以使用 Python 向 网站 服务器发送请求,接收 HTML 代码,然后提取所需的数据,而不是使用浏览器。
我不会在这里介绍太多 HTML,只介绍几个要点,以便我们对 网站 和网络抓取的工作原理有一个基本的了解。HTML 元素或“HTML 标签”是被包围的特定关键字。例如,下面的 HTML 代码是网页的标题,将鼠标悬停在网页中的选项卡上会在浏览器上看到相同的标题。请注意,大多数 HTML 元素都需要一个开始标记(例如 , )和一个相应的结束标记(例如 , )。
Python pandas 获取网页中的表格数据(网页抓取)
同样,下面的代码会在浏览器上绘制一个表格,你可以尝试复制粘贴到记事本中,然后保存为“tableexample.html”文件,应该可以在浏览器中打开。简要说明如下:
用户名
国家
城市
性别
年龄
阿甘
美国
纽约
中号>
50
玛丽珍
加拿大
多伦多
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其实是一个list,有意思……list里好像有3个item。让我们看看 pandas 为我们采集了哪些数据……
图 2
第一个数据框df[0],似乎和它没有任何关系,只是页面上爬到的第一个表。查看网页,可以知道这张桌子是在中国举办的《财富》全球论坛。
图 3
第二个数据框 df[1] 是该页面上的另一个表,请注意在它的末尾,它说有 [500 行 x 6 列]。这张表是世界500强排行榜。
图 4
第三个数据框 df[2] 是页面上的第三个表格,最后显示 [110 行 x 5 列]。此表为上榜中国企业名单。
请注意,始终检查 pd.read_html() 返回的内容,一个网页可能收录多个表,因此您将获得一个数据框列表,而不是单个数据框!
注:本文借鉴自。
请在下方留言完善本文内容,让更多人学习到更完善的知识。
欢迎来到知识星球:完美Excel社区,在这里您可以进行技术交流和提问,获取更多电子资料,通过社区加入专属的微信讨论群,交流更便捷。