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()

结果:

python实例31[urllib.request.urlopen获取股票信息]
 

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

 

完!

 

你可能感兴趣的:(request)