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 Web框架Flask中使用七牛云存储实例
Feb 08 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
Oct 18 Python
Python入门之后再看点什么好?
Mar 05 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
Python中return self的用法详解
Jul 27 Python
Python lxml解析HTML并用xpath获取元素的方法
Jan 02 Python
python求最大值,不使用内置函数的实现方法
Jul 09 Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 Python
python爬虫基础知识点整理
Jun 02 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
python多次执行绘制条形图
Apr 20 Python
Python find()、rfind()方法及作用
Dec 24 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 获取当前访问的url文件名的方法小结
2010/02/08 PHP
php获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
php导出CSV抽象类实例
2014/09/24 PHP
分享PHP守护进程类
2015/12/30 PHP
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
python的多重继承的理解
2017/08/06 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
django_orm查询性能优化方法
2018/08/20 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
什么时候需要进行强制类型转换
2016/09/03 面试题
物流管理毕业生自荐信
2013/10/24 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
小学假期安全广播稿
2014/09/28 职场文书
幼儿园感谢信
2015/01/21 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
班主任工作总结范文
2015/08/13 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android