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定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
解决Pycharm出现的部分快捷键无效问题
Oct 22 Python
Python选择网卡发包及接收数据包
Apr 04 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
python内打印变量之%和f的实例
Feb 19 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 Python
Pyspark读取parquet数据过程解析
Mar 27 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
简单了解python列表和元组的区别
May 14 Python
python爬虫要用到的库总结
Jul 28 Python
python中time tzset()函数实例用法
Feb 18 Python
Python基础之变量的相关知识总结
Jun 23 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使用base64加密解密图片示例分享
2014/01/20 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
Node.js文件操作详解
2014/08/16 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
Python 的AES加密与解密实现
2019/07/09 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
专业实习自我鉴定
2013/10/29 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
领导班子对照检查材料
2014/09/22 职场文书
万能检讨书2000字
2014/10/17 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
Python道路车道线检测的实现
2021/06/27 Python
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript