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里大整数相乘相关技巧指南
Sep 12 Python
python实现将文本转换成语音的方法
May 28 Python
Python中的日期时间处理详解
Nov 17 Python
Python 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
numpy matrix和array的乘和加实例
Jun 28 Python
opencv python 图像去噪的实现方法
Aug 31 Python
便捷提取python导入包的属性方法
Oct 15 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
python如何制作英文字典
Jun 25 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
pycharm2021激活码使用教程(永久激活亲测可用)
Mar 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 多进程 解决难题
2009/06/22 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
php实现的双向队列类实例
2014/09/24 PHP
php编程每天必学之验证码
2016/03/03 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
python读取指定字节长度的文本方法
2019/08/27 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
python实现批量修改文件名
2020/03/23 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
如何设置Java的运行环境
2013/04/05 面试题
正规的求职信范文分享
2013/12/11 职场文书
采购部经理岗位职责
2014/02/10 职场文书
开学典礼策划方案
2014/05/28 职场文书
大学新闻系自荐书
2014/05/31 职场文书
公司授权委托书样本
2014/09/15 职场文书
小浪底导游词
2015/02/12 职场文书
旅游安全责任协议书
2016/03/22 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers