[python]初试页面抓取——抓取沪深股市交易龙虎榜数据
[python]抓取沪深股市交易龙虎榜数据
python 3.5.0下运行
没做自动建立files文件夹,需要手动在py文件目录下建立files文件夹后运行

#coding=utf-8 import gzipimport http.cookiejar
import urllib.request
import urllib.parse
import json
import os
import time
import datetime def getOpener(head):
# deal with the Cookies
cj = http.cookiejar.CookieJar()
pro = urllib.request.HTTPCookieProcessor(cj)
opener = urllib.request.build_opener(pro)
header = []
for key, value in head.items():
elem = (key, value)
header.append(elem)
opener.addheaders = header
return opener def ungzip(data):
try: # 尝试解压
print('正在解压.....')
data = gzip.decompress(data)
print('解压完毕!')
except:
print('未经压缩, 无需解压')
return datadef writeFile(fname,data):
filename = r'files/'+fname+'.txt'
if os.path.exists(filename):
message = '文件 + '+filename +' 已存在,跳过'
else:
message = '文件 + '+filename +' 不存在,新建' f=open(filename,'w')
f.write(data)
f.close()
print ('文件:'+fname+' 处理完毕。')
'''
读取抓取数据开始日期
如果不存在该日期,从10日前开始读取
如果存在从文件内日期开始读取
读到今天
'''
header = {
'Connection': 'Keep-Alive',
'Accept': '*/*',
'Accept-Language': 'zh-CN,zh;q=0.8',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36',
'Accept-Encoding': 'gzip, deflate',
'Host': '',
'Referer' : ''
}
shUrl = 'http://query.sse.com.cn/infodisplay/showTradePublicFile.do?dateTx='#2015-09-28
szUrl = ['http://www.szse.cn/szseWeb/common/szse/files/text/jy/jy',#150923.txt
'http://www.szse.cn/szseWeb/common/szse/files/text/smeTxt/gk/sme_jy',#150708.txt
'http://www.szse.cn/szseWeb/common/szse/files/text/nmTxt/gk/nm_jy']#150902.txt
startFileName = r'startDay.txt'
endDay = datetime.datetime.now() if os.path.exists(startFileName):
print('日期配置文件存在,开始读取')
f=open(startFileName,'rt')
s = f.readline()
f.close()
if s!='':
print('将从日期:'+s+' 开始读取')
timeArray = time.strptime(s, "%Y%m%d")
timeStamp = int(time.mktime(timeArray))
fromDay = datetime.datetime.utcfromtimestamp(timeStamp)
else:
print('日期配置文件为空,将从10日前日期开始读取')
fromDay = endDay - datetime.timedelta(days = 10)
else:
print('日期配置文件不存在,将从10日前日期开始读取')
fromDay = endDay - datetime.timedelta(days = 10) endDay = endDay + datetime.timedelta(days = 1) while fromDay.strftime("%Y%m%d")!=endDay.strftime("%Y%m%d"):
print(fromDay.strftime("%Y%m%d")) '''
循环上面日期
抓取上证,深证,中小创交易龙虎榜数据 如果内容不为空 文件不存在 写入文件
'''
#抓取上证龙虎榜数据
url = shUrl + fromDay.strftime("%Y-%m-%d")
print('读取上证龙虎榜\n'+url) header['Host'] = 'query.sse.com.cn'
header['Referer'] = 'http://www.sse.com.cn/disclosure/diclosure/public/' try:
opener = getOpener(header)
op = opener.open(url)
data = op.read()
data = data.decode()
jsonData = json.loads(data)
outData = ''
if (jsonData['fileContents']!=''):
for info in jsonData['fileContents']:
outData= outData+ info+'\n'
writeFile(fromDay.strftime("%Y-%m-%d")+'_上证',outData)
except:
print(fromDay.strftime("%Y-%m-%d")+'跳过') #抓取深证,中小创交易龙虎榜数据
i=1
for url in szUrl:
if(i==1):
name = '深证'
elif(i==2):
name = '中小板'
else:
name = '创业板'
url = url + fromDay.strftime("%y%m%d")+'.txt'
print('读取'+name+'龙虎榜\n'+url)
header['Host'] = 'www.szse.cn'
header['Referer'] = 'http://www.szse.cn'
try:
opener = getOpener(header)
op = opener.open(url)
data = op.read()
data = ungzip(data)
data = data.decode('gbk')
writeFile(fromDay.strftime("%Y-%m-%d")+'_'+name,data)
except:
print(fromDay.strftime("%Y-%m-%d")+'跳过')
i=i+1 fromDay = fromDay + datetime.timedelta(days = 1) #最后更新日期为当前日期
print('设置最新日期')
fromDay = fromDay - datetime.timedelta(days = 1)
f=open(startFileName,'w')
f.write(fromDay.strftime("%Y%m%d"))
f.close()
print('读取完成')
[python]初试页面抓取——抓取沪深股市交易龙虎榜数据的更多相关文章
- python调用tushare获取沪深A股票资金流向数据
接口:moneyflow 描述:获取沪深A股票资金流向数据,分析大单小单成交情况,用于判别资金动向 限量:单次最大提取4000行记录,总量不限制 积分:用户需要至少1500积分才可以调取,基础积分有流 ...
- [python]数据整理,将取得的众多的沪深龙虎榜数据整一整
将昨日取得的众多的沪深龙虎榜数据整一整 提取文件夹内所有抓取下来的沪深龙虎榜数据,整理出沪深两市(含中小创)涨幅榜股票及前5大买入卖出资金净值,保存到csv文件 再手动使用数据透视表进行统计 原始数据 ...
- python爬虫beta版之抓取知乎单页面回答(low 逼版)
闲着无聊,逛知乎.发现想找点有意思的回答也不容易,就想说要不写个爬虫帮我把点赞数最多的给我搞下来方便阅读,也许还能做做数据分析(意淫中--) 鉴于之前用python写爬虫,帮运营人员抓取过京东的商品品 ...
- python爬虫之分析Ajax请求抓取抓取今日头条街拍美图(七)
python爬虫之分析Ajax请求抓取抓取今日头条街拍美图 一.分析网站 1.进入浏览器,搜索今日头条,在搜索栏搜索街拍,然后选择图集这一栏. 2.按F12打开开发者工具,刷新网页,这时网页回弹到综合 ...
- Python爬虫实战四之抓取淘宝MM照片
原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...
- Python爬虫实战六之抓取爱问知识人问题并保存至数据库
大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...
- 一次Python爬虫的修改,抓取淘宝MM照片
这篇文章是2016-3-2写的,时隔一年了,淘宝的验证机制也有了改变.代码不一定有效,保留着作为一种代码学习. 崔大哥这有篇>>小白爬虫第一弹之抓取妹子图 不失为学python爬虫的绝佳教 ...
- 用python的requests第三方模块抓取王者荣耀所有英雄的皮肤
本文使用python的第三方模块requests爬取王者荣耀所有英雄的图片,并将图片按每个英雄为一个目录存入文件夹中,方便用作桌面壁纸 下面时具体的代码,已通过python3.6测试,可以成功运行: ...
- 利用python脚本(xpath)抓取数据
有人会问re和xpath是什么关系?如果你了解js与jquery,那么这个就很好理解了. 上一篇:利用python脚本(re)抓取美空mm图片 # -*- coding:utf-8 -*- from ...
随机推荐
- 彻底理解nth-child和nth-of-type的区别。
最近又有些天没写博客了,主要写一篇下来,太浪费时间了,其实这不是根本,根本是最近比较忙,忙什么呢?最近发现一个问题觉得学习速度太慢了,时间倒是花的很多,但大部分时间都花在无意义的事情上,所有打算改变政 ...
- OpenCASCADE Make Primitives-Sphere
OpenCASCADE Make Primitives-Sphere eryar@163.com Abstract. The sphere is the simplest topology shape ...
- 前端学PHP之文件操作
× 目录 [1]文件类型 [2]文件属性 [3]目录路径[4]目录遍历[5]目录统计[6]目录增删[7]目录复制[8]文件操作[9]文件内容 前面的话 在程序运行时,程序本身和数据一般都存在内存中,当 ...
- Android沉浸式通知栏设计
转载博客:http://www.2cto.com/kf/201503/381348.html Android4.4新特性,系统状态栏一体化. 实现的步骤主要有以下几点: 1.android4.4 以上 ...
- Git-Notes
1.Git安装,直接在官网下载安装即可. 2.Git配置,使用config选项,配置名字和邮箱,如下所示 C:\Users\1yyg>git config --global user.name ...
- Don't let self-built concept imprison yourself
If Self-inferiority is disease, but self-confidence is hazard. Leo moon personalities can be extreme ...
- 编写简单的ramdisk(无请求队列)
最近在研究块设备驱动的编写,看了赵磊大牛的<写一个块设备驱动>,受益匪浅,虽然能看懂里面说的,但动手写写代码还是能加深理解的,下面实现的ramdisk写的很简单,如果有错误,欢迎大牛们指正 ...
- Wave - 花たん 音乐
Wave 歌手:花たん 所属专辑:Flower 間違えて宇宙終わって(宇宙因为一个错误而终结了) 青信号はいつも通り(通行的灯号一如往常的) 飛んでまた止まって(又再停止传播) また 飛びそうだ(然后 ...
- PHP实现实现数字补零格式化
在接支付SDK的时候,第三方回调处理时需要IP,并且IP的需求是:去掉点号,补零到每地址段3位, 如:192168000001 先看看我的实现: <?php $IP = explode ( '. ...
- 移动端IM系统的协议选型:UDP还是TCP?
1.前言 对于有过网络编程经验的开发者来说,使用何种数据传输层协议来实现数据的通信,是个非常基础的问题,它涉及到你的第一行代码该如何编写. 从PC时代的IM开始,IM开发者就在为数据传输协议的选型争论 ...