学会了从网格爬取数据,就可以告别从网站一页一页复制表格数据的时代了。

说个亲身经历的事:

以前我的本科毕业论文是关于“燃放烟花爆竹和空气质量”之间关系的,就要从环保局官网查资料。

一个省10个市,720天的数据,我就傻乎乎地,一页一页复制数据,然后还要手动清理数据。

幸好可以复制,要不然我都可能手抄,你信不信。

当时别说Python,R都不知道,甚至excel都跛脚。

结果,有同学帮老师做个实验,论文都快写好了,我还在处理数据。

也正是因为有了这个经历,促使了我毕业很多年以后,还想把爬取数据这样一件事做好。

同时,也希望能给后面学习的人一点启发。

…………………………………………以上为感慨,下面是正文………………………………………

 1 #request网站请求
2 import urllib.request
3 #BeautifulSoup获取网站源代码
4 from bs4 import BeautifulSoup
5 import pandas as pd
6 import csv
7 response=urllib.request.urlopen("https://sthjt.ah.gov.cn/public/column/21691?type=4&action=list&nav=&sub=&catId=32710201")
8 #解析源代码
9 soup = BeautifulSoup(response, "html.parser")
10 links = soup.find("div", {"id": {"xxgk_lmcon"}})
11 ss =links.find_all("a")
12 for a in ss:
13 link = a.get('href')
14 #read_html可以直接获取网站表格
15 tb = pd.read_html(link)[2]
16 #mode='a'追加写入
17 tb.to_csv("C:\\Users\\RK-PC\\Desktop\\Crawldata.csv", mode='a')

为了看的更清楚一点,把我获取数据的网站截图搬上来。

F12找元素

点进去一个链接

看对应的源代码,注意到没有,网站表格基本都是这个结构,tr是表格的行,table row

这里本可以继续用find函数找标签,然后输出

为了使代码简洁一点,采用pandas库的read_html函数,直接读取表格。

最后,把表格写入csv文件,注意要表明,mode=‘a’,不覆盖。

声明:以上操作仅用于学习和研究。

Python读取网页表格数据的更多相关文章

  1. [转] Windows下使用Python读取Excel表格数据

    http://www.python-excel.org/这个网站罗列了很多关于在Python下操作Excel文件的信息,这里选择了其介绍的第一个模块xlrd . xlrd 0.9.2版本跨平台同时支持 ...

  2. python读取Excel表格文件

    python读取Excel表格文件,例如获取这个文件的数据 python读取Excel表格文件,需要如下步骤: 1.安装Excel读取数据的库-----xlrd 直接pip install xlrd安 ...

  3. Java读取Execl表格数据

    在前面提到用java代码新建一个Execl 表格并添加数据到表格中, 这次写了一个读取Execl表格数据并添加导数据库中的案列 给定对方一个Execl模板表格,如果导入的Execl表格和预订的表格不相 ...

  4. 利用 pandas库读取excel表格数据

    利用 pandas库读取excel表格数据 初入IT行业,愿与大家一起学习,共同进步,有问题请指出!! 还在为数据读取而头疼呢,请看下方简洁介绍: 数据来源为国家统计局网站下载: 具体方法 代码: i ...

  5. python读取excel所有数据(cmd界面)

    python读取excel所有数据(cmd界面) cmd界面显示excel数据 代码 import xlrd import os from prettytable import PrettyTable ...

  6. go读取excel表格数据

    go读取excel表格数据 使用工具 github.com/Luxurioust/excelize 百度到的都是使用这个 实际上已经改名了 github.com/360EntSecGroup-Skyl ...

  7. Python读取Excel表格

    前言:需要进行自动化办公或者自动化测试的朋友,可以了解下此文,掌握Python读取Excel表格的方法. 一.准备工作: 1.安装Python3.7.0(官网下载安装包) 2.安装Pycharm(官网 ...

  8. python提取网页表格并保存为csv

    0. 1.参考 W3C HTML 表格 表格标签 表格 描述 <table> 定义表格 <caption> 定义表格标题. <th> 定义表格的表头. <tr ...

  9. Python读取execl表格

    读取execl表格 import xlrd Execl = xlrd.open_workbook(r'Z:\Python学习\python26期视频\day76(allure参数.读excel.发邮件 ...

随机推荐

  1. py2neo学习记录

    py2neo 通用 # -*- coding: UTF-8 -*- from py2neo import Graph, Node, Relationship, walk, NodeMatcher, R ...

  2. kubebuilder实战之六:构建部署运行

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. Learning ROS: Getting started with roswtf (检查ROS系统,找出问题)

    本文主要部分来源于ROS官网的Tutorials. roswtf是ROS的检查工具,用于检查ROS安装和运行系统. Checking your installation&Offline mak ...

  4. Qt之类反射机制

    在java语言中,可以使用getObject(String)函数,从类型直接构建新的对象. 而在C++中是没有这种机制的,Qt虽然提供了元对象机制,但只可以获取对象的类名,不能反向构建. 所以搜索一下 ...

  5. noip模拟19/20

    这两场考试大部分的题都考过,然鹅有的 \(trick\) 忘了,有的当时咕了(虽然现在还咕着) 首先是 \(v\) 这道题需要加一个小优化,对于较小的状态应该直接用数组记录,较大的再用 map 记 然 ...

  6. Git 系列教程(10)- 仓库别名

    Git 别名 前言 Git 并不会在你输入部分命令时自动推断出你想要的命令 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名 $ git c ...

  7. GC-优化-案例

    优化案例 Service S 优化 现在看一下执行jstat -gcutil的结果 S0 S1 E O P YGC YGCT FGC FGCT GCT 12.16 0.00 5.18 63.78 20 ...

  8. Java字符串常量池及字符串判等解析

    一.理解"=="的含义 "=="常用于两个对象的判等操作,在Java中,"=="主要有以下两种用法: 1.基础数据类型:比较的是他们的值是否 ...

  9. go新建一个工程

    使用go mod 可以在任何地方新建工程 工程目录 main.go   //引用子包必须格式"工程目录/子包" go.mod 子包 编译工程: go build

  10. 样式和模板快速入门Style,Template

    http://www.cnblogs.com/jv9/archive/2010/04/14/1711520.html 样式(Style)和模板(Template)的定义 在Silverlight中,样 ...