新浪网的股票分析,股票新代码是什么意思

  

  一入股市深似海,用Python对股票数据定向爬虫避免被坑   

  

  功能简介   

  

  目的:获取上海证券交易所和深圳证券交易所所有股票的名称和交易信息。输出:保存到文件。技术路线:请求—bs4re语言:python3.5 一入股市深似海,用Python对股票数据定向爬虫避免被坑   

  

  说明   

  

  网站选择原则:股票信息静态存在于html页面中,不是由js代码生成,没有Robbts协议限制。选择方法:打开网页,查看源代码,搜索源代码中是否存在该网页的股价数据。打开Sina.com,如下图所示:   

  

  一入股市深似海,用Python对股票数据定向爬虫避免被坑   

  

  上图左侧是网页界面,显示天山股份股价13.06。右边是这个网页的源代码。在源代码中查询13.06,发现没有找到。所以判断这个网页的数据是js生成的,不适合这个项目。所以换个网页吧。   

  

  再次打开百度股票的网站,如下图所示:   

  

  一入股市深似海,用Python对股票数据定向爬虫避免被坑   

  

  从上图可以发现,百度股票的数据是用html代码生成的,符合我们项目的要求。因此,本项目选择了百度股票的网站。   

  

  由于百度股票只有单只股票的信息,所以还需要当前股市所有股票的列表。这里选择东方财富网,界面如下图所示:   

  

  一入股市深似海,用Python对股票数据定向爬虫避免被坑   

  

  原理分析   

  

  查一下百度股票每只股票的网站:https://gupiao.baidu.com/stock/sz300023.html,你可以发现网站里有一个数字300023,正是这只股票的编号,sz代表深交所。因此,我们构建的程序结构如下:   

  

  第一步:从东方财富网获取股票清单;第二步:逐个获取股票代码,添加到百度股票的链接中,最后逐个访问这些链接,获取股票信息;步骤3:将结果保存到文件中。然后查看百度股票信息网页的源代码,发现每只股票的信息都是用html代码存储的,如下:   

  

  一入股市深似海,用Python对股票数据定向爬虫避免被坑   

  

  所以我们在存储每只股票的信息时,可以参考上图中html代码的存储方式。每个信息源对应一个信息值,即以键-值对的形式存储。在python中,键值对可以是字典类型。所以在这个项目中,先用字典存储每只股票的信息,然后用字典记录所有股票的信息,最后将字典中的数据输出到一个文件中。   

  

  项目完整程序   

  

  来自bs4的导入请求import beautiful soup import trace back import redef gethtml text(URL): try : r=requests . get(URL)r . raise _ for _ status()r . encoding=r . apparent _ encoding return r . text except : return ' ' def getstock list(lst,stock URL)3360 html=gethtml text(stock URL)soup=beautiful soup(html,' html . parser ')a=soup . find _ all(' a ')for Ihtml ' html=gethtml text(URL)try : if html==' ' : continue info dict={ } soup=beautiful soup(html,' html . parser ')stock info=soup . find(' div ',Attr={ ' class ' 3360 ' stock-bets ' })name=stock info . find _ all(attrs={ ' class ' 3360 ' bets-name ' })[0]info dict . update({ ' stock name ' 3360 name .text val=valueList[i]。text info dict[key]=val with open(fpath,' a ',encoding=' utf-8 ')as f : f . write(str(info dict)' \ n ')count=count 1 print(' \ R当前进度: {3360.2f}% '。format (count * 100/len (lst)),end=' ')除了3360 count=count1print ('\ r当前进度3360 {3360.2f}% '。format(count * 100 end=' ')continued of main(): stock _ list _ URL=' http://quote . eastmoney . com/stock list . html ' stock_info_url=' https://gupiao . Baidu . com/stock/' output _ file=' d :/baidustockkinfo . txt ' slist=[]getstock list(slist,stock _ list _ URL)getstock info(slist,stock _ info _ URL,output_file)main()   

相关文章