zoukankan      html  css  js  c++  java
  • python实例31[urllib.request.urlopen获取股票信息]

    ① 在Python中通过HTTP下载东西是非常简单的; 实际上,只需要一行代码。urllib.request模块有一个方便的函数urlopen() ,它接受你所要获取的页面地址,然后返回一个类文件对象,您只要调用它的read()方法就可以获得网页的全部内容。没有比这更简单的了。 
    ② urlopen().read()方法总是返回bytes对象,而不是字符串。记住字节仅仅是字节,字符只是一种抽象。 HTTP 服务器不关心抽象的东西。如果你请求一个资源,你得到字节。 如果你需要一个字符串,你需要确定字符编码,并显式的将其转化成字符串。


     

    代码如下:


    import urllib.request

    debug
    =False

    class Utility:
        
    def ToGB(str):
            
    if(debug): print(str)
            
    return str.decode('gb2312')

    class StockInfo:
        
    """get stock information"""
        
        
    def GetStockStrByNum(num):
            f
    = urllib.request.urlopen('http://hq.sinajs.cn/list='+ str(num))
            
    if(debug) : print(f.geturl())
            
    if(debug) : print(f.info())
            
    return f.readline()
            f.close()    
                    
        
    def ParseResultStr(resultstr):
            
    if(debug) : print(resultstr)
            slist
    =resultstr.split(',')
            name
    =slist[0][-4:]
            yesterdayendprice
    =slist[2]
            todaystartprice
    =slist[1]
            nowprice
    =slist[3]
            upgraderate
    =(float(nowprice)-float(yesterdayendprice))/float(yesterdayendprice)
            upgraderate
    = upgraderate * 100
            dateandtime
    =slist[30+ ' ' + slist[31]        
            
    print('*******************************')
            
    print('name is :',name)
            
    print('yesterday end price is :', yesterdayendprice)
            
    print('today start price is :', todaystartprice)
            
    print('now price is :', nowprice)
            
    print('upgrade rate is :', upgraderate,'%')
            
    print('date and time is :', dateandtime)
            
    print('*******************************')
            
        
    def GetStockInfo(num):
            str
    =StockInfo.GetStockStrByNum(num)
            strGB
    =Utility.ToGB(str)
            StockInfo.ParseResultStr(strGB)
           

    def Main():
        stocks 
    = ['sh600547''sh600151''sz000593']
        
    for stock in stocks:
            StockInfo.GetStockInfo(stock)

    Main()

    结果:


     

    参考:http://www.cnblogs.com/blodfox777/archive/2009/02/10/1387229.html

    完!


    作者:iTech
    微信公众号: cicdops
    出处:http://itech.cnblogs.com/
    github:https://github.com/cicdops/cicdops

  • 相关阅读:
    apache bench(ab)压力测试模拟POSt请求
    使用pabot并发执行robotframework的testSuite
    Python实现简单的HTTP服务器(支持文件上传下载)
    Mac OS启动服务优化高级篇(launchd tuning)
    在MacOS下Python安装lxml报错xmlversion.h not found 报错的解决方案
    模拟恶劣网络环境常用的几种解决方案
    Web缓存基础:术语、HTTP报头和缓存策略
    RTMP直播应用与延时分析
    用Redis作为Mysql数据库的缓存【转】
    缓存雪崩,缓存穿透解决方案
  • 原文地址:https://www.cnblogs.com/itech/p/1622058.html
Copyright © 2011-2022 走看看