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文件读写操作与linux shell变量命令交互执行的方法
Jan 14 Python
Python实现把回车符\r\n转换成\n
Apr 23 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
python中import与from方法总结(推荐)
Mar 21 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
May 03 Python
Python 日志logging模块用法简单示例
Oct 18 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
python str字符串转uuid实例
Mar 03 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
Python实现CAN报文转换工具教程
May 05 Python
如何用 Python 制作一个迷宫游戏
Feb 25 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
咖啡的植物学知识
2021/03/03 咖啡文化
坏狼的PHP学习教程之第1天
2008/06/15 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
php一个找二层目录的小东东
2012/08/02 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
零基础php编程好学吗
2019/10/11 PHP
JS日历 推荐
2006/12/03 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
详解Vue2的diff算法
2021/01/06 Vue.js
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
python tkinter实现屏保程序
2019/07/30 Python
python实现小世界网络生成
2019/11/21 Python
python实现logistic分类算法代码
2020/02/28 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
python中安装django模块的方法
2020/03/12 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
如何掌握自荐信格式呢
2013/11/19 职场文书
还款承诺书范文
2014/05/20 职场文书
python实现Thrift服务端的方法
2021/04/20 Python