# -*- coding: utf-8 -*-
"""
Created on Wed Nov 8 14:23:14 2017 @author: 123
""" import requests
'''from bs4 import BeautifulSoup
import traceback'''
import re
import urllib
import random '''用于获取HTML源代码'''
def getHTMLText(url):
try:
r = requests.get(url , timeout = 30) r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "ERROR!" '''通过去除标签获取HTML源代码中的正文信息'''
def getRealText(html):
dre = re.compile(r'<[^>]+>',re.S)
real_Text = dre.sub('',html)
'''print(real_Text)'''
return real_Text def write_into(real_Title,real_Text):
f = open(real_Title,'w')
f.write(real_Text)
f.close() def test(real_Text):
GDP = re.findall(".*地区生产总值(.*?)亿元.*",real_Text)
for x in GDP:
print(x)
'''通过正则表达式匹配出地区生产总值和亿元之间的数字,即excel表格中的数值''' get = re.findall(".*地方公共财政预算收入(.*?)亿元.*",real_Text)
for x in get:
print(x) def main():
url = "http://xxgk.xiaogan.gov.cn/xxgk/jcms_files/jcms1/web30/site/art/2017/4/1/art_5130_17454.html"
html = getHTMLText(url)
Title = re.search('<title>.*</title>',html)
'''获取html的title信息,即excel表格中的数据来源'''
real_Title = Title.group().strip("</title>") real_Text = getRealText(html)
write_into(real_Title,real_Text) test(real_Text)
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. Java Swing应用程序JLable超链接

    在HTML中设置一个超链接是很容易的,使用<a></a>标签就可以完成了. 在客户端应用程序中,并没有这样的标签,但是可以使用按钮来实现,But 有时候就是想好看一点,不想要按 ...

  2. python计算机基础-Day1

    计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...

  3. curl post请求总是返回417错误

    在进行post请求的时候, curl总是返回417错误 在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步. 发送一个 ...

  4. 网站压力测试ab 命令

    网站压力测试ab 命令 author: headsen   chen         2017-10-25   10:06:35 个人原创,转载请注明作者,出处,否则依法追究法律责任! 1,制作一个a ...

  5. mysql存储过程(查询数据库内表 游标循环 if判断 插入别的表内)

    BEGIN declare f_age int;DECLARE incode1 VARCHAR(100);DECLARE incode2 VARCHAR(100);DECLARE incode3 VA ...

  6. poj2793 素数和

    题目链接:http://poj.org/problem?id=2739 #include<iostream> using namespace std; int count=0; int p ...

  7. [poj3984]迷宫问题_bfs

    迷宫问题 题目大意:给你一个5*5的矩阵,求左上角到左下角的最短路径. 注释:0或1的矩阵,1表示不能走,0表示能走,保证有唯一最短路径. 想法:bfs爆搜练习题.通过其实点,定义方向数组,然后进行b ...

  8. Tomcat 8启动速度慢原因1: At least one JAR was scanned for TLDs yet contained no TLDs

    最近使用tomcat8启动项目时,发现At least one JAR was scanned for TLDs yet contained no TLDs这一步加载时间非常长, 从网上收集了各种资料 ...

  9. MQTT TLS 加密传输

    MQTT TLS 加密传输 Mosquitto原生支持了TLS加密,TLS(传输层安全)是SSL(安全套接层)的新名称,生成证书后再配置一下MQTT代理,本文主要介绍Mqtt如何实现双向认证和单向认证 ...

  10. 利用拷贝data目录文件的方式迁移mysql数据库

    其实迁移数据库,一般用sql文件就行,把A服务器数据库的表结构和数据等等导出,然后导入到B服务器数据库, 但是这次数据文件过大,大约有40个G,使用命令行导入,效果不是很好,经常在执行过程中报错.卡死 ...