zoukankan      html  css  js  c++  java
  • python爬取人民币汇率中间价

    python爬取人民币汇率中间价,从最权威的网站中国外汇交易中心。

    首先找到相关网页,解析链接,这中间需要经验和耐心,在此不多说。

    以人民币兑美元的汇率为例(CNY/USD),脚本详情如下:

    windows:

    ====================================================

    # -*- coding: utf-8 -*-
    import time
    import requests
    import json

    t = time.time()
    # 这里必须是ms级别的时间戳
    timestamp = (int(round(t*1000)))
    url = "http://www.chinamoney.com.cn/r/cms/www/chinamoney/data/fx/ccpr.json?t="+str(timestamp)

    s = requests.Session()
    r = s.post(url,data={})

    sjson = json.loads(r.text)
    #print sjson

    for k in sjson['records']:
      if k['vrtEName'] == 'USD/CNY':
      print k['price']

    =====================================================

    Linux:

    =====================================================

    # -*- coding: utf-8 -*-
    import time
    import urllib
    import urllib2
    import json

    t = time.time()
    # timestamp must be ms
    timestamp = (int(round(t*1000)))
    url = "http://www.chinamoney.com.cn/r/cms/www/chinamoney/data/fx/ccpr.json?t="+str(timestamp)
    data = urllib.urlencode({})

    request = urllib2.Request(url,data)
    response = urllib2.urlopen(request)

    result = response.read()
    rjson = json.loads(result)

    for r in rjson['records']:
      if r['vrtEName'] == 'USD/CNY':
      return r['price']

    ====================================================

    发现在linux环境下用request,返回的是HTML结构。

    而不是data的json格式,所以在linux用urllib和urllib2

  • 相关阅读:
    Java核心技术点之动态代理
    一起写一个Android图片加载框架
    Java核心技术点之注解
    Android中的Intent Filter匹配规则介绍
    阿里客户端工程师试题简析——Android应用的闪退(crash)分析
    Android开发之高效加载Bitmap
    Java NIO:浅析I/O模型
    深入探索Android中的Handler
    git常用命令
    SM2
  • 原文地址:https://www.cnblogs.com/shizouwei/p/8507199.html
Copyright © 2011-2022 走看看