bootstrap 表格不用tr td如何写_Pandas还能用来写爬虫?
文末扫码加入“数据分析交流群”
作者:易执
转自:Python读财(ID:gh_69c0d625f9bc)
谈及Pandas
的read.xxx
系列的函数,大家的第一反应会想到比较常用的pd.read_csv()
和pd.read_excel()
,大多数人估计没用过pd.read_html()
这个函数。
虽然它低调,但功能非常强大,用于抓取Table表格型数据时,简直是个神器。下面来详细介绍一下。
大家逛网页时,经常会看到这样一些数据表格,比如:
电影票房数据
世界大学排行榜数据
财经数据
如果查看一下网页的HTML结构(Chrome浏览器F12),会发现它们有个共同的特点,不仅是表格,还是以Table结构展示的表格数据,大致的网页结构如下:
<table class="..." id="..."><thead><tr><th>...th>tr>thead><tbody><tr><td>...td>tr><tr>...tr><tr>...tr> ...<tr>...tr><tr>...tr> tbody>table>
针对网页结构类似的表格类型数据,pd.read_html()
就派上了大用场了,它可以将网页上的表格都抓取下来,并以DataFrame
的形式装在一个列表中返回。具体是这么个流程:
先介绍一下read_html
的一些主要的参数
read_html
io
:str or file-like接收网址、文件、字符串。网址不接受https
,尝试去掉s
后爬去header
:int or list-like or None指定列标题所在的行attrs
: dict or None, optional传递一个字典,用其中的属性筛选出特定的表格parse_dates
:bool解析日期
接下来以爬取新浪财经的基金重仓股为例演示一下,URL为:
http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p=1
这部分有6页,点击不同的页数可以发现,请求URL主要是p
参数在变动,p=n
代表了第n
页,所以一个for
循环就可以遍历所有网址啦。URL的变动规律了解之后,就可以愉快的爬数据了,
上代码:
import pandas as pd
df = pd.DataFrame()for i in range(6):
url = 'http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p={page}'.format(page=i+1)
df = pd.concat([df,pd.read_html(url)[0]])print("第{page}页完成~".format(page=i+1))
df.to_csv('./data.csv', encoding='utf-8', index=0)
整个过程不需要用到正则表达式或者xpath
等工具,短短的几行代码就可以将数据嗖嗖地爬下来了,是不是超级无敌方便?赶紧动手操作一波吧!
日后在爬一些小型数据时,只要遇到这种Table类型的表格,就可以直接祭出read_html
这个神器啦,别人还在琢磨正则、xpath
怎么写的时候,你已经把数据爬完了,想想就很舒服!
- END -
本文转载自公众号Python读财(ID:gh_69c0d625f9bc)
bootstrap 表格不用tr td如何写_Pandas还能用来写爬虫?相关推荐
- HTML 表格table tr td、表头标题、表结构、合并单元格
文章目录 表格基本标签 表格属性 表格标题和表头单元格标签 表格的结构标签(了解) 合并单元格 表格基本标签 <table><tr><td>单元格内的文字</ ...
- HTML表格,table,thead,tbody,tfoot,th,tr,td,的属性以及跨行,跨列
在HTML中表格是作为一个整体来解析的,解析完才会在页面显示,如果表格很复杂很长,加载时间很长,用户体验就不好.所以这里就要用到表格结构标签,解析一部分就显示一部分,不用等表格全部加载完再显示. 表格 ...
- html中表格元素的英文,HTML中表格元素TABLE,TR,TD及属性的语法
table:表格元素及属性 属性说明 width 表格宽度,单位为%或象素 border 表格边框线的粗细 cellspacing 表格间距 cellpadding 表格边距 ...
- Javascript操作table,tr,td和表格CSS样式设置小常识
效果良好的表属性设置: <table cellSpacing="0" cellPadding="0" border='1' bordercolor=&qu ...
- php表格tr,jQuery+ajax实现动态添加表格tr td功能示例
本文实例讲述了jQuery+ajax实现动态添加表格tr td功能.分享给大家供大家参考,具体如下: 功能:ajax获取后台返回数据给table动态添加tr/td html部分: ajax部分: va ...
- html tr加样式,Javascript操作table,tr,td和表格CSS样式设置小常识
效果图:方法一 姓名 性别 住址 电话 张三 男 ...
- tr td 编写表格
用于创建表格的3个基本元素是: 首标签<table>和尾标签</table>分别表示一个表格的开始与结束.这是不难理解的. tr是"table row(表格行)&qu ...
- Table tr td th表格使用案例
<table width="300" border="1" cellspacing="0"> <tr> <th ...
- table tr td 表格合并
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
最新文章
- ASP.NET MVC3 快速入门--第二节 添加一个控制器
- 华为创造出5g和鸿蒙,拥有5G专利,开发鸿蒙系统:《华为智慧》复盘成长路总结成功之道...
- python一个月能学成嘛-一个月可以学好基础的Python吗?
- 看似简单的问题 静态方法和实例化方法的区别
- MySQL数据库恢复(LOAD DATA)
- python性能优化之函数执行时间分析_python性能优化之函数执行时间分析
- 数据可视化(三)- Seaborn简易入门
- Spring 读取配置文件(二)
- 为什么Spring的健康状况会再次下降,下降,上升,上升,上升和下降?
- Android 自定义Application
- LNMP里常见的502问题
- avr单片机led数码管六位动态显示时分秒c语言程序,AVR单片机控制8段LED数码管同时显示 - AVR单片机8位数码管显示的程序实现(两种方法介绍)...
- Python三目运算符
- ntent action大全
- 53 -leetcode 7. 整数反转
- SignalTap II里面Power-Up Trigger的使用
- POJ-2034 Anti-prime Sequences dfs
- 数据库 char nchar varchar nvarchar 区别
- matable的作用
- Presto内存泄露问题调查