文末扫码加入“数据分析交流群”

作者:易执

转自:Python读财(ID:gh_69c0d625f9bc)


谈及Pandasread.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还能用来写爬虫?相关推荐

  1. HTML 表格table tr td、表头标题、表结构、合并单元格

    文章目录 表格基本标签 表格属性 表格标题和表头单元格标签 表格的结构标签(了解) 合并单元格 表格基本标签 <table><tr><td>单元格内的文字</ ...

  2. HTML表格,table,thead,tbody,tfoot,th,tr,td,的属性以及跨行,跨列

    在HTML中表格是作为一个整体来解析的,解析完才会在页面显示,如果表格很复杂很长,加载时间很长,用户体验就不好.所以这里就要用到表格结构标签,解析一部分就显示一部分,不用等表格全部加载完再显示. 表格 ...

  3. html中表格元素的英文,HTML中表格元素TABLE,TR,TD及属性的语法

    table:表格元素及属性             属性说明 width 表格宽度,单位为%或象素 border 表格边框线的粗细 cellspacing 表格间距 cellpadding 表格边距 ...

  4. Javascript操作table,tr,td和表格CSS样式设置小常识

    效果良好的表属性设置: <table cellSpacing="0" cellPadding="0" border='1' bordercolor=&qu ...

  5. php表格tr,jQuery+ajax实现动态添加表格tr td功能示例

    本文实例讲述了jQuery+ajax实现动态添加表格tr td功能.分享给大家供大家参考,具体如下: 功能:ajax获取后台返回数据给table动态添加tr/td html部分: ajax部分: va ...

  6. html tr加样式,Javascript操作table,tr,td和表格CSS样式设置小常识

    效果图:方法一            姓名        性别        住址        电话                            张三            男       ...

  7. tr td 编写表格

    用于创建表格的3个基本元素是: 首标签<table>和尾标签</table>分别表示一个表格的开始与结束.这是不难理解的. tr是"table row(表格行)&qu ...

  8. Table tr td th表格使用案例

    <table width="300" border="1" cellspacing="0"> <tr> <th ...

  9. table tr td 表格合并

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

最新文章

  1. ASP.NET MVC3 快速入门--第二节 添加一个控制器
  2. 华为创造出5g和鸿蒙,拥有5G专利,开发鸿蒙系统:《华为智慧》复盘成长路总结成功之道...
  3. python一个月能学成嘛-一个月可以学好基础的Python吗?
  4. 看似简单的问题 静态方法和实例化方法的区别
  5. MySQL数据库恢复(LOAD DATA)
  6. python性能优化之函数执行时间分析_python性能优化之函数执行时间分析
  7. 数据可视化(三)- Seaborn简易入门
  8. Spring 读取配置文件(二)
  9. 为什么Spring的健康状况会再次下降,下降,上升,上升,上升和下降?
  10. Android 自定义Application
  11. LNMP里常见的502问题
  12. avr单片机led数码管六位动态显示时分秒c语言程序,AVR单片机控制8段LED数码管同时显示 - AVR单片机8位数码管显示的程序实现(两种方法介绍)...
  13. Python三目运算符
  14. ntent action大全
  15. 53 -leetcode 7. 整数反转
  16. SignalTap II里面Power-Up Trigger的使用
  17. POJ-2034 Anti-prime Sequences dfs
  18. 数据库 char nchar varchar nvarchar 区别
  19. matable的作用
  20. Presto内存泄露问题调查

热门文章

  1. 锁的释放流程-unparkSuccessor
  2. 反射获取有参数的成员方法并运行
  3. 通过反射获取带参构造方法并使用
  4. 集成开发环境IDE的概述
  5. flume案例-网络数据采集-Flume的配置
  6. HDFS的API操作-创建文件和文件夹
  7. 新增房源服务实现之AutoGenerator使用以及创建pojo对象
  8. 哨兵机制服务器环境准备
  9. log4j 2.x --LogManager
  10. Java并行程序基础