专栏名称: 老齐Py
Data Science
目录
相关文章推荐
中核集团  ·  注意!这是一条全是“恶评”的推文! ·  2 天前  
阿尔法工场研究院  ·  专家访谈汇总:A股独立行情中的不确定性 ·  3 天前  
阿尔法工场研究院  ·  最隆重“年例”来临,梁文锋老宅成“风水师”打卡点 ·  3 天前  
ETF和LOF圈  ·  熟悉的配方又回来了? ·  3 天前  
51好读  ›  专栏  ›  老齐Py

【译】用Pandas从HTML网页中读取数据

老齐Py  · 掘金  ·  · 2020-04-01 07:09

正文

阅读 14

【译】用Pandas从HTML网页中读取数据

作者: Erik Marsja

翻译:老齐

与本文相关的图书推荐:《数据准备和特征工程》,本书已经在【 电子工业出版社天猫旗舰店 】发售

电子工业出版社天猫旗舰店有售


本文,我们将通过几步演示如何用Pandas的 read_html 函数从HTML页面中抓取数据。首先,一个简单的示例,我们将用Pandas从字符串中读入HTML;然后,我们将用一些示例,说明如何从Wikipedia的页面中读取数据。

用Python载入数据

对于数据分析和可视化而言,我们通常都要载入数据,一般是从已有的文件中导入,比如常见的CSV文件或者Excel文件。从CSV文件中读入数据,可以使用Pandas的 read_csv 方法。例如:

import pandas as pd

df = pd.read_csv('CSVFILE.csv')
复制代码

上面的方法通常用于导入结构化的数据,比如CSV或者JSON等。

我们平时更多使用维基百科的信息,它们通常是以HTML的表格形式存在。

为了获得这些表格中的数据,我们可以将它们复制粘贴到电子表格中,然后用Pandas的 read_excel 读取。这样当然可以,然而现在,我们要用网络爬虫的技术自动完成数据读取。

预备知识

用Pandas读取HTML表格数据,当然要先安装Pandas了。此处使用pip来安装(也可以使用其它方式,比如Anaconda, ActivePython等),安装方法 pip install pandas

注意,如果执行此命令后会自动检查pip是否需要升级,如果有必要请升级。此外,我们也会使用lxml或者BeautifulSoup4这些包,安装方法还是用pip: pip install lxml

read_html 函数

使用Pandas的 read_html 从HTML的表格中读取数据,其语法很简单:

pd.read_html('URL_ADDRESS_or_HTML_FILE')
复制代码

以上就是 read_html 函数的完整使用方法,下面演示示例:

示例1

第一个示例,演示如何使用Pandas的 read_html 函数,我们要从一个字符串中的HTML表格读取数据。

import pandas as pd

html = '''<table>
  <tr>
    <th>a</th>
    <th>b</th>
    <th>c</th>
    <th>d</th>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
  </tr>
  <tr>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
  </tr>
</table>'''


df = pd.read_html(html)
复制代码

现在,我们所得到的结果不是Pandas的DataFrame对象,而是一个Python列表对象,可以使用 tupe() 函数检验一下:

type(df)
复制代码

示例2

在第二个示例中,我们要从维基百科中抓取数据。我们要抓取的是关于蟒科的表格数据。

import pandas as pd

dfs = pd.read_html('https://en.wikipedia.org/wiki/Pythonidae'






请到「今天看啥」查看全文