Python爬虫学习-股票数据定向爬虫(实例)
2019-02-16 17:06
302 查看
股票数据定向爬虫
主要思路:
- 选取合适的股票网站进行爬取;
- 爬下所有的股票的编号列表;
- 过比较不同个股页面的网址来找到其相同点和不同点,进一步分析;
- 对所有的个股进行相关信息爬取。
爬虫代码
import re import requests from bs4 import BeautifulSoup import bs4 # 股票代码编号信息获取 def getHTMLText(url1): try: kv = {'user-agent': 'Mozilla/4.0'} r=requests.get(url1,headers=kv) # 设置浏览器的类型,进行迷惑 r.raise_for_status() # 事先获得编码,提高爬虫速度 r.encoding='utf-8' # 避免r.text错误的情况发生 if r.text=='': getHTMLText(url1) else: return r.text except: getHTMLText(url1) # 爬取所有股票的编号列表 def getStockList(demo): soup = BeautifulSoup(demo, 'html.parser') a = soup('a') for i in a: try: href= i.attrs['href'] # 通过正则表达式来获得需要的部分 str1=re.findall(r'[s][hz]\d{6}',href) # 排除不合格的href if str1!=[]: fllist.append(re.findall(r'[s][hz]\d{6}',href)) else: continue except: continue return fllist # 爬取单个股票的信息 def getStockInfo(demo2,output_file,stock): infolist = {} try: soup = BeautifulSoup(demo2, 'html.parser') stocklist=soup.find("div",class_="stock-bets") # 获取股票名称 name=stocklist.find(class_='bets-name') infolist.update({'股票名称':name.text.split()[0]}) # 获取股票其他信息 for dl in stocklist.descendants: if isinstance(dl,bs4.element.Tag): key=dl.find('dt') value=dl.find('dd') # 排除当key为空值 if key!=None: infolist[key.string]=value.string # 将股票信息放入文件中 with open(output_file,'a',encoding='utf-8') as f: f.write(str(infolist) + '\n') except: # 将爬取出错的股票信息打印放入到no_do列表中 no_do.append(stock) # 主函数 if __name__ == '__main__': count=1 no_do=[] fllist=[] # 股票列表url stock_list_url='http://quote.eastmoney.com/stocklist.html' # 文件存放地址 output_file = 'D://pythontest/testtxt/股票信息.txt' # 获取到股票列表 fllist demo=getHTMLText(stock_list_url) fllist=getStockList(demo) #对所有的股票进行迭代 for i in range(len(fllist)): count+=1 # 百度个股信息url stock_info_url = "https://gupiao.baidu.com/stock/{}.html".format(str(fllist[i])[2:-2]) demo2=getHTMLText(stock_info_url) # 处理和打印个股信息 getStockInfo(demo2,output_file,fllist[i]) # 打印出进度条 print('\r当前进度:{:.2f}%'.format(count*100 / len(fllist)),end='') # 打印出异常的信息 print(no_do)
结果显示
爬取完成。
还存在一些缺陷,部分个股信息爬取失败,暂时将爬取失败股票放在no_do中。
相关文章推荐
- 【python爬虫学习笔记】07 股票数据定向爬虫实例
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
- python爬虫笔记(七):实战(三)股票数据定向爬虫
- python爬虫学习(股票数据爬取)
- 【python爬虫学习笔记】05 利用requests-bs4的大学排名定向爬虫的实例
- python3.x爬虫学习:股票数据定向爬虫笔记
- Python网络爬虫与信息提取-Day14-(实例)股票数据定向爬虫
- python 东方财富网&百度股票数据定向爬虫 实例
- python爬虫实战二——股票数据定向爬虫【有补充】
- Python 爬虫实战:股票数据定向爬虫
- python爬虫:使用Mongodb数据库存储数据学习笔记
- python3爬虫学习之数据存mongo基础
- python学习3:获取股票历史数据
- python爬虫案例——东方财富股票数据采集
- python3爬虫学习之数据提取之lxml与xpath
- Python爬虫实例2-多线程爬虫抓取糗事百科数据
- python爬虫由浅入深9---定向爬取股票数据信息并保存至本地文件
- 【python爬虫学习笔记】03 requests库爬取的简单实例以及robots协议
- Python爬虫包 BeautifulSoup 学习(三) 实例
- python爬虫案例——证券之星股票数据采集