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中返回字典键的值的values()方法使用
May 22 Python
Python2.x与Python3.x的区别
Jan 14 Python
Python实现购物程序思路及代码
Jul 24 Python
Python使用numpy实现BP神经网络
Mar 10 Python
Python生成MD5值的两种方法实例分析
Apr 26 Python
python写日志文件操作类与应用示例
Jul 01 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
Python while true实现爬虫定时任务
Jun 08 Python
详解pyinstaller生成exe的闪退问题解决方案
Jun 19 Python
Python依赖包迁移到断网环境操作
Jul 13 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
PHP安全编程之加密功能
2006/10/09 PHP
php中的时间处理
2006/10/09 PHP
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
房地产管理毕业生自荐信
2013/11/04 职场文书
卫校护理专业毕业生求职信
2013/11/26 职场文书
主办会计岗位职责
2014/03/13 职场文书
蓝颜请假条
2014/04/11 职场文书
教师节宣传方案
2014/05/23 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
党员检讨书
2014/10/13 职场文书
解除租赁合同协议书
2016/03/21 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js