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加pyGame实现的简单拼图游戏实例
May 15 Python
详解Swift中属性的声明与作用
Jun 30 Python
python抓取并保存html页面时乱码问题的解决方法
Jul 01 Python
python Matplotlib画图之调整字体大小的示例
Nov 20 Python
Python之web模板应用
Dec 26 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
Python实现二维曲线拟合的方法
Dec 29 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
python抓取需要扫微信登陆页面
Apr 29 Python
python脚本之一键移动自定格式文件方法实例
Sep 02 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 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
德生BCL3000的电路分析和打磨
2021/03/02 无线电
php Rename 更改文件、文件夹名称
2011/05/24 PHP
php学习之数据类型之间的转换介绍
2011/06/09 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
php实现记事本案例
2020/10/20 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
python函数局部变量用法实例分析
2015/08/04 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
为什么说python更适合树莓派编程
2020/07/20 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
考研英语复习计划
2015/01/19 职场文书
通知书大全
2015/04/27 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS