python利用re,bs4,requests模块获取股票数据
2019-07-29 14:17
656 查看
今天闲来无聊无意间看到了百度股票,就想着用python爬一下数据,于是就找到了东方财经网,结合这两个网站,写了一个小爬虫,数据保存在文件中,比较简单的示例,就当做用来练习正则表达式和BeautifulSoupl了。
首先页面分析,打开东方财经网股票列表页,
和百度股票详情页 ,右键查看网页源代码,
网址后面的代码就是股票代码,所以打算先获取股票代码,然后获取详情,废话少说,直接上代码吧:
import re import requests from bs4 import BeautifulSoup #获取html def getHtml(url): try: req=requests.get(url) req.raise_for_status() req.encoding=req.apparent_encoding return req.text except : print('getHtml失败') #获取股票代码 def getStockList(lst,stockUrl): html=getHtml(stockUrl) soup=BeautifulSoup(html,'html.parser') a=soup.find_all('a') for i in a: try: href=i.attrs['href'] lst.append(re.findall(r'[s][hz]\d{6}',href)[0]) except: continue #获取股票详情 def getStockInfo(lst,stockUrl,fpath): count=0 for stock in lst: url=stockUrl+stock+'.html' html=getHtml(url) try: if html=='': continue infoDict={} soup=BeautifulSoup(html,'html.parser') stockInfo=soup.find('div',attrs={'class':'stock-bets'}) name=stockInfo.find_all(attrs={'class':'bets-name'})[0] infoDict.update({'股票名称':name.text.split()[0]}) keyList=stockInfo.find_all('dt') valueList=stockInfo.find_all('dd') for i in range(len(keyList)): key=keyList[i].text val=valueList[i].text infoDict[key]=val with open(fpath,'a',encoding='utf-8') as f: f.write(str(infoDict)+'\n') count+=1 print('\r当前速度:{:.2f}%'.format(count*100/len(lst)),end='') except: count+=1 print('\r当前速度e:{:.2f}%'.format(count*100/len(lst)),end='') continue def main(): stockListUrl='http://quote.eastmoney.com/stocklist.html' stockInfotUrl='https://gupiao.baidu.com/stock/' outPutFile='D:\python\shuju\stockInfo.txt' slist=[] getStockList(slist,stockListUrl) getStockInfo(slist,stockInfotUrl,outPutFile) main()
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- [Python]利用ricequant获取上证指数以及所有股票历史价格数据
- python基础学习第五课,大批量获取网页数据基础,requests模块尝试
- 从BUG工具redmine上获取数据后借助python模块pycha 画出BUG分析类报表,利用xlsxwriter
- 利用Python中的matplotlib模块抓取yahoo finance里的历史数据并绘图
- 从BUG工具redmine上获取数据后借助python模块pycha 画出BUG分析类报表
- 用python wxpy管理微信公众号并利用微信获取自己的开源数据
- Python3获取股票行情数据(中国个股/中国指数/全球指数)
- 利用Python的requests模块爬取当当网的书籍信息(待续)
- 万得-python接口获取股票数据
- 利用Python的Psutil模块获取系统的信息
- Selenium遇到的问题8 python利用xlwt模块操作xls数据显示IO错误(Python中正反斜杠的用法)
- python 利用csv模块导入数据
- Python 股票历史数据的获取
- Python爬虫——利用requests模块爬取妹子图
- 利用pywinauto模块打开一个应用,输入参数,点击应用中的按钮,获取数据
- 利用bs模块抓取数据
- python3 bs4 requests 腾讯新闻 标题 链接获取 小试牛刀
- requests-re-bs4 定向爬取股票信息
- 【python爬虫学习笔记】05 利用requests-bs4的大学排名定向爬虫的实例