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使用循环实现批量创建文件夹示例
Mar 25 Python
python实现的登陆Discuz!论坛通用代码分享
Jul 11 Python
Python可变参数函数用法实例
Jul 07 Python
python解析基于xml格式的日志文件
Feb 25 Python
python实现周期方波信号频谱图
Jul 21 Python
PyCharm设置护眼背景色的方法
Oct 29 Python
为什么你还不懂得怎么使用Python协程
May 13 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
Python with语句和过程抽取思想
Dec 23 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
Python装饰器用法与知识点小结
Mar 09 Python
python脚本第一行如何写
Aug 30 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页面输出时js设置input框的选中值
2016/09/30 PHP
php readfile下载大文件失败的解决方法
2017/05/22 PHP
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
Python访问纯真IP数据库脚本分享
2015/06/29 Python
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
python3+PyQt5实现柱状图
2018/04/24 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
演讲稿怎么写才完美
2014/01/02 职场文书
微信营销策划方案
2014/02/24 职场文书
综艺节目策划方案
2014/06/13 职场文书
国庆节活动总结
2014/08/26 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
2016年母亲节寄语
2015/12/04 职场文书
创业计划书之宠物店
2019/09/19 职场文书