Python基于pandas爬取网页表格数据
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
以网页表格为例:https://www.kuaidaili.com/free/ 该网站数据存在table标签,直接用requests,需要结合bs4解析正则/xpath/lxml等,没有几行代码是搞不定的。 今天介绍的黑科技是pandas自带爬虫功能,pd.read_html(),只需传人url,一行代码搞定。 原网页结构如下: python代码如下: import pandas as pd\nurl='http://www.kuaidaili.com/free/' df=pd.read_html(url)[0] # [0]:表示第一个table,多个table需要指定,如果不指定默认第一个 在Python的编程环境中,pandas库是一个非常强大的数据分析工具,同时也提供了一种便捷的方式来爬取网页中的表格数据。本文将详细介绍如何使用pandas的`read_html`函数来抓取网页表格,以及一些相关的参数和使用技巧。 我们来看一个简单的例子。假设我们要爬取的网页是`https://www.kuaidaili.com/free/`,这个页面包含了一个表格,其中的数据可能是网络代理IP等信息。传统的爬虫方法通常会涉及`requests`库获取网页源码,然后结合`BeautifulSoup`或`lxml`解析HTML,寻找`<table>`标签并提取数据。然而,使用pandas的`read_html`函数,我们可以简化这一过程。 ```python import pandas as pd url = 'http://www.kuaidaili.com/free/' df = pd.read_html(url)[0] ``` 在这段代码中,`pd.read_html(url)`会解析URL中的HTML,找出所有的表格(`<table>`标签)并将其转换为DataFrame对象的列表。由于我们只需要第一个表格,所以通过索引`[0]`获取它。如果网页中有多个表格,可以通过不同索引值选取需要的表格。 如果不想手动指定索引,`read_html`函数会默认返回第一个表格。提取后的数据会被存储在DataFrame对象`df`中,可以直接进行后续的数据处理操作,如保存到CSV文件: ```python # 将DataFrame保存为CSV文件,注意中文编码 df.to_csv('free_ip.csv', mode='a', encoding='utf_8_sig', header=1, index=0) print('done!') ``` `read_html`函数的API有很多可自定义的参数,例如: - `io`: 输入参数,可以是URL、HTML字符串或本地文件路径。 - `match`: 正则表达式,用于匹配表格的class或id属性。 - `flavor`: 解析器,默认为`bs4`,可以选择`lxml`等其他解析器。 - `header`: 指定表格的列名行,可以是整数或列表。 - `skiprows`: 跳过的行数,可以是整数或列表。 - `attrs`: 字典形式的HTML属性,如`{'id': 'table'}`,用于精确选择特定表格。 - `parse_dates`: 是否尝试将某些列转换为日期类型。 - `thousands`: 分隔符,用于识别数字中的千位分隔符。 - `encoding`: 文件编码,用于读取或写入时的字符编码。 - `converters`: 自定义函数,用于特定列的数据转换。 - `na_values`: 指定哪些值被视为缺失值。 - `keep_default_na`: 是否保留默认的缺失值标记。 - `displayed_only`: 是否只提取显示在页面上的表格。 返回的结果是一个DataFrame对象组成的列表,即使网页只有一个表格,结果也会被包装在列表中。因此,如果我们只需要一个表格,可以直接通过索引访问,如`list[0]`,得到一个DataFrame对象。 在实际使用中,根据网页结构和需求,灵活运用这些参数可以帮助我们更高效地提取所需数据。同时,pandas库提供了丰富的数据处理功能,如`DataFrame.loc`用于行列定位,`fillna`用于填充缺失值,`rolling`用于移动窗口计算,`isnull`用于检查空值,以及`RFM`模型分析等,这些都是在数据分析中常用的方法。 pandas的`read_html`函数提供了一种快速、简便的方式来抓取网页表格数据,结合pandas的其他功能,可以轻松完成数据的获取和预处理工作。对于从事数据分析或者Web爬虫工作的开发者来说,熟练掌握这一功能将极大地提高工作效率。
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/download_crawler_static/13711861/bg1.jpg)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- weixin_519474642024-03-28感谢资源主分享的资源解决了我当下的问题,非常有用的资源。
- 90382023-08-12资源不错,对我启发很大,获得了新的灵感,受益匪浅。
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 7
- 资源: 927
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)