加载中…
正文 字体大小:

Python3.4爬虫下载火币网比特币历史交易记录

(2014-12-19 12:38:37)
标签:

it

股票

杂谈

分类: 程序
不知不觉中,我在火币网的历史成交记录已经有上千页了,最近想下载下来分析分析,一页一页的复制粘贴显然不现实,最近正好在学习python,于是拿来练练手,参考网上的例子,写了个python爬虫,达到了想要的结果。类似的下载莱特币记录,以及OKcoin的数据,稍微改动一下应该就可以了。我去,正则部分的表达式显示出错,就粘贴图片吧。
import gzip
import re
import http.cookiejar
import urllib.request
import urllib.parse
import string
import os
#下面几条是处理cookie的
cj = http.cookiejar.CookieJar()
pro = urllib.request.HTTPCookieProcessor(cj)
opener = urllib.request.build_opener(pro)
#火币的网页是压缩的,要解压
def ungzip(data):
    try:        
        data = gzip.decompress(data)
    except:
        print('未经压缩, 无需解压')
    return data
#处理一下报头,伪装浏览器  
def getOpener(head):
    header = []
    for key, value in head.items():
        elem = (key, value)
        header.append(elem)
    opener.addheaders = header
    return opener
  
header = {
    'Connection': 'Keep-Alive',
    'Accept': 'text/html, application/xhtml+xml, */*',
    'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3',
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 ',
    'Accept-Encoding': 'gzip, deflate',
    'Host': 'https://www.huobi.com',
    'DNT': '1'
}
  
url = 'https://www.huobi.com/account/login.php' #火币的登陆页
opener = getOpener(header)
postDict = {
        'email': 'email',                       #账号
        'password': 'password'          #密码
}
postData = urllib.parse.urlencode(postDict).encode()
op2 = opener.open(url, postData) #先登录
f=open(r'C:/python34/火币历史交易数据.txt','w',encoding='utf-8')  #数据文件保存的位置
for i in range(1,100):                                                                         #要下载的页数自己改
    fulurl = 'https://www.huobi.com/trade/index.php?a=query&t=0&date_begin=&date_end=&pn='+str(i)                            op=opener.open(fulurl)
    data = op.read()
    data = ungzip(data).decode()
    time=[]               #交易时间
    price=[]              #价格
    amount=[]         #数量
    types=[]             #类型,买入或卖出
    money=[]           #总钱数
    history=[None]*20
    time = re.compile(r'',re.DOTALL).findall(data)
    price = re.compile(r'',re.DOTALL).findall(data)
    amount = re.compile(r'',re.DOTALL).findall(data)
    types = re.compile(r'',re.DOTALL).findall(data)
    money = re.compile(r'',re.DOTALL).findall(data)#一系列匹配的正则式 ,由于显示问题,参考下面的图片           
    print("第%d页正在保存"%(i))
    for j in range(0,len(time)):
        history[j] = time[j]+' '+price[j]+' '+amount[j]+' '+types[j]+' '+money[j]+'\n' #数据之间有空格
        f.write(history[j])
f.close()
print('保存完成')
Python3.4爬虫下载火币网比特币历史交易记录

0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有