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 27 Python
Python函数式编程指南(一):函数式编程概述
Jun 24 Python
简单了解Python中的几种函数
Nov 03 Python
Python实现聊天机器人的示例代码
Jul 09 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
Python timer定时器两种常用方法解析
Jan 20 Python
python 使用递归实现打印一个数字的每一位示例
Feb 27 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
Python代码执行时间测量模块timeit用法解析
Jul 01 Python
Python使用Turtle模块绘制国旗的方法示例
Feb 28 Python
python3美化表格数据输出结果的实现代码
Apr 14 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 截取字符串专题集合
2010/08/19 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
python 性能提升的几种方法
2016/07/15 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
Ajax和javascript的区别
2013/07/20 面试题
实习会计求职自荐信范文
2014/03/10 职场文书
投标服务承诺书
2014/05/28 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
客户答谢会致辞
2015/01/20 职场文书
绿色环保倡议书
2015/04/28 职场文书
学校食堂管理制度
2015/08/04 职场文书