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程序语言快速上手教程
Jul 18 Python
Python读取环境变量的方法和自定义类分享
Nov 22 Python
Python中的生成器和yield详细介绍
Jan 09 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
python PyTorch预训练示例
Feb 11 Python
python 利用栈和队列模拟递归的过程
May 29 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
python实现顺时针打印矩阵
Mar 02 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 Python
Python图像处理库PIL详细使用说明
Apr 06 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获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
工作中常用js功能汇总
2020/11/07 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
python进程类subprocess的一些操作方法例子
2014/11/22 Python
Python多线程编程简单介绍
2015/04/13 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
Footshop法国:购买运动鞋
2020/01/19 全球购物
编程输出如下图形
2013/11/24 面试题
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
结婚典礼证婚词
2014/01/11 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
融资合作协议书范本
2014/10/17 职场文书
村党建工作汇报材料
2014/11/02 职场文书
故意杀人案辩护词
2015/05/21 职场文书
高中军训感想
2015/08/07 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python