1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Wed Nov 8 14:23:14 2017
  4.  
  5. @author: 123
  6. """
  7.  
  8. import requests
  9. '''from bs4 import BeautifulSoup
  10. import traceback'''
  11. import re
  12. import urllib
  13. import random
  14.  
  15. '''用于获取HTML源代码'''
  16. def getHTMLText(url):
  17. try:
  18. r = requests.get(url , timeout = 30)
  19.  
  20. r.raise_for_status()
  21. r.encoding = r.apparent_encoding
  22. return r.text
  23. except:
  24. return "ERROR!"
  25.  
  26. '''通过去除标签获取HTML源代码中的正文信息'''
  27. def getRealText(html):
  28. dre = re.compile(r'<[^>]+>',re.S)
  29. real_Text = dre.sub('',html)
  30. '''print(real_Text)'''
  31. return real_Text
  32.  
  33. def write_into(real_Title,real_Text):
  34. f = open(real_Title,'w')
  35. f.write(real_Text)
  36. f.close()
  37.  
  38. def test(real_Text):
  39. GDP = re.findall(".*地区生产总值(.*?)亿元.*",real_Text)
  40. for x in GDP:
  41. print(x)
  42. '''通过正则表达式匹配出地区生产总值和亿元之间的数字,即excel表格中的数值'''
  43.  
  44. get = re.findall(".*地方公共财政预算收入(.*?)亿元.*",real_Text)
  45. for x in get:
  46. print(x)
  47.  
  48. def main():
  49. url = "http://xxgk.xiaogan.gov.cn/xxgk/jcms_files/jcms1/web30/site/art/2017/4/1/art_5130_17454.html"
  50. html = getHTMLText(url)
  51. Title = re.search('<title>.*</title>',html)
  52. '''获取html的title信息,即excel表格中的数据来源'''
  53. real_Title = Title.group().strip("</title>")
  54.  
  55. real_Text = getRealText(html)
  56. write_into(real_Title,real_Text)
  57.  
  58. test(real_Text)
  59. main()

能够实现基于给出的网页连接爬取html后 进行正文内容的提取(测试网页反应情况良好)

通过正则表达式匹配左右给定的字符串,可以获取对应的数字。

通过设定左右字符串分别为”地区生产总值“和”亿元“,可以爬取出地区生产总值为1576.69

目前存在的问题:

1. 设想通过excel直接生成搜索关键词,并自动进行百度搜索 获取带有gov后缀的网站链接进行自动爬取,但是现在发现,通过百度爬取的网站链接被百度加密,没有很好可用的方法进行加密链接破解。

2.在本样例中不能准确的爬取出地方公共财政预算收入,因为正文包括 全市地方公共财政预算收入和市本级地方公共财政预算收入,正则不能很好的区分两者的区别,根据贪婪原则,本次测试爬取了较后的市本级一般公共预算收入,与预期不符。

基于python的统计公报关键数据爬取的更多相关文章

  1. 基于python的统计公报关键数据爬取 update

    由于之前存在的难以辨别市本级,全市相关数据的原因,经过考虑采用 把含有关键词的字段全部提取进行人工辨别的方法 在其余部分不改变的情况下,更改test部分 def test(real_Title,rea ...

  2. python爬虫-上期所持仓排名数据爬取

    摘要:笔记记录爬取上期所持仓数据的过程,本次爬取使用的工具是python,使用的IDE是pycharm 一.查看网页属性,分析数据结构 在浏览器中打开上期所网页,按F12或者选择表格文字-右键-审查元 ...

  3. 2019基于python的网络爬虫系列,爬取糗事百科

    **因为糗事百科的URL改变,正则表达式也发生了改变,导致了网上许多的代码不能使用,所以写下了这一篇博客,希望对大家有所帮助,谢谢!** 废话不多说,直接上代码. 为了方便提取数据,我用的是beaut ...

  4. 芝麻HTTP:JavaScript加密逻辑分析与Python模拟执行实现数据爬取

    本节来说明一下 JavaScript 加密逻辑分析并利用 Python 模拟执行 JavaScript 实现数据爬取的过程.在这里以中国空气质量在线监测分析平台为例来进行分析,主要分析其加密逻辑及破解 ...

  5. requests模块session处理cookie 与基于线程池的数据爬取

    引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/ ...

  6. requests模块处理cookie,代理ip,基于线程池数据爬取

    引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的. 一.基于requests模块 ...

  7. Python爬虫 股票数据爬取

    前一篇提到了与股票数据相关的可能几种数据情况,本篇接着上篇,介绍一下多个网页的数据爬取.目标抓取平安银行(000001)从1989年~2017年的全部财务数据. 数据源分析 地址分析 http://m ...

  8. 人人贷网的数据爬取(利用python包selenium)

    记得之前应同学之情,帮忙爬取人人贷网的借贷人信息,综合网上各种相关资料,改善一下别人代码,并能实现数据代码爬取,具体请看我之前的博客:http://www.cnblogs.com/Yiutto/p/5 ...

  9. python实现人人网用户数据爬取及简单分析

    这是之前做的一个小项目.这几天刚好整理了一些相关资料,顺便就在这里做一个梳理啦~ 简单来说这个项目实现了,登录人人网并爬取用户数据.并对用户数据进行分析挖掘,终于效果例如以下:1.存储人人网用户数据( ...

随机推荐

  1. 三方面搞定http协议之“状态码”

    当我们向服务器请求数据的时候,服务器会给我们一个反馈,告诉我们对待我们的请求,服务器处理得怎么样了,而这个反馈,是通过数字来传达的,这个数字就叫状态码. 状态码分为以下几种: 1xx:指示信息--表示 ...

  2. Linux中安装字体

    Linux中安装字体 查看系统中的字体 fc-list 查看系统中的中文字体 fc-list :lang=zh将然后将字体文件拷贝到/usr/share/fonts/中 cp aa.ttl /usr/ ...

  3. 20165230 预备作业3 Linux安装及学习

    20165230 预备作业3 Linux安装及学习 安装Linux操作系统 通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,开始了虚拟机的安装,根据教程按着步骤一步一步的完成. 遇 ...

  4. Node.JS开发环境准备

    1.安装Nodejs的Windows包. 官网:http://nodejs.org/ 2.可以使用cmd运行nodejs项目,命令格式: node  文件名.js node  文件名 3.对于不熟悉的 ...

  5. 笔记:Spring Cloud Ribbon 客户端配置详解

    自动化配置 由于 Ribbon 中定义的每一个接口都有多种不同的策略实现,同时这些接口之间又有一定的依赖关系,Spring Cloud Ribbon 中的自动化配置能够很方便的自动化构建接口的具体实现 ...

  6. WinSock 异步I/O模型-3

    重叠I/O(Overlapped I/O) 在 Winsock 中,重叠 I/O(Overlapped I/O)模型能达到更佳的系统性能,高于之前讲过的三种.重叠模型的基本设计原理便是让应用程序使用一 ...

  7. SpringBoot 自定义Banner

    在2016年的最后一天,借用Spring Boot的Banner向各位程序猿同仁们问候一声:Happy New Year. 接下来我们就来介绍一下这个轻松愉快的自定义banner功能.实现的方式非常简 ...

  8. Java NIO之套接字通道

    1.简介 前面一篇文章讲了文件通道,本文继续来说说另一种类型的通道 -- 套接字通道.在展开说明之前,咱们先来聊聊套接字的由来.套接字即 socket,最早由伯克利大学的研究人员开发,所以经常被称为B ...

  9. Eclipse项目中web app libraries和 Referenced Libraries区别

    Referenced  Libraries是编译环境下使用的JAR包,所谓编译环境下使用的JAR包, 就是说你在Eclipse中进行源文件的编写的时候,所需要引用到的类都从Referenced  Li ...

  10. javaScript设计模式-创建型设计模式

    我们大家一听到设计模式就感觉设计模式是一个高端的东西,到底什么是设计模式呢?其实设计模式也就是我们的前辈在写代码的时候遇到的问题,提出的解决方案,为了方便人与人之间的交流,取了个名字,叫做设计模式. ...