Python基于pandas爬取网页表格数据


Posted in Python onMay 11, 2020

以网页表格为例:https://www.kuaidaili.com/free/

该网站数据存在table标签,直接用requests,需要结合bs4解析正则/xpath/lxml等,没有几行代码是搞不定的。

今天介绍的黑科技是pandas自带爬虫功能,pd.read_html(),只需传人url,一行代码搞定。

原网页结构如下:

Python基于pandas爬取网页表格数据

python代码如下:

import pandas as pd
url='http://www.kuaidaili.com/free/'
df=pd.read_html(url)[0] 
# [0]:表示第一个table,多个table需要指定,如果不指定默认第一个
# 如果没有【0】,输入dataframe格式组成的list
df

输出dataframe格式数据

Python基于pandas爬取网页表格数据

Python基于pandas爬取网页表格数据

再次保存到本地,csv格式,注意中文编码:utf_8_sig

print(type(df))df.to_csv('free ip.csv',mode='a', encoding='utf_8_sig', header=1, index=0)print('done!')

查看csv文件

Python基于pandas爬取网页表格数据

先来了解一下read_html函数的api:

pandas.read_html(io, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, tupleize_cols=None, thousands=', ', encoding=None, decimal='.', converters=None, na_values=None, keep_default_na=True, displayed_only=True)

常用的参数:

  • io:可以是url、html文本、本地文件等;
  • flavor:解析器;
  • header:标题行;
  • skiprows:跳过的行;
  • attrs:属性,比如 attrs = {'id': 'table'};
  • parse_dates:解析日期

注意:返回的结果是**DataFrame**组成的**list**。

若要dataframe,直接取list【0】

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 代码性能优化技巧分享
Aug 07 Python
python利用hook技术破解https的实例代码
Mar 25 Python
python使用arp欺骗伪造网关的方法
Apr 24 Python
Python函数式编程指南(三):迭代器详解
Jun 24 Python
开始着手第一个Django项目
Jul 15 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
python求绝对值的三种方法小结
Dec 04 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
Feb 17 Python
python实现简单颜色识别程序
Feb 19 Python
python实现简单的购物程序代码实例
Mar 03 Python
python 如何调用 dubbo 接口
Sep 24 Python
Python调用shell命令常用方法(4种)
May 11 #Python
python中sort sorted reverse reversed函数的区别说明
May 11 #Python
python的reverse函数翻转结果为None的问题
May 11 #Python
Pyecharts地图显示不完成问题解决方案
May 11 #Python
将python字符串转化成长表达式的函数eval实例
May 11 #Python
python函数中将变量名转换成字符串实例
May 11 #Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 #Python
You might like
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
PHP微信支付实例解析
2016/07/22 PHP
Thinkphp事务操作实例(推荐)
2017/04/01 PHP
phpfpm的作用和用法
2019/10/10 PHP
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
JS取request值以及自动执行使用示例
2014/02/24 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
简单快速的实现js计算器功能
2017/08/17 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
Python语言快速上手学习方法
2018/12/14 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
介绍一下mysql的日期和时间函数
2013/03/28 面试题
师范生实习个人的自我评价
2013/09/28 职场文书
职业技术学校毕业生推荐信
2013/12/03 职场文书
财会自我鉴定范文
2013/12/27 职场文书
企业文化宣传标语
2014/06/09 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
Python数据分析之绘图和可视化详解
2021/06/02 Python
Go Plugins插件的实现方式
2021/08/07 Golang
mysql查找连续出现n次以上的数字
2022/05/11 MySQL