使用python爬虫实现网络股票信息爬取的demo


Posted in Python onJanuary 05, 2018

实例如下所示:

import requests
from bs4 import BeautifulSoup
import traceback
import re
 
def getHTMLText(url):
 try:
  r = requests.get(url)
  r.raise_for_status()
  r.encoding = r.apparent_encoding
  return r.text
 except:
  return ""
 
def getStockList(lst, stockURL):
 html = getHTMLText(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):
 for stock in lst:
  url = stockURL + stock + ".html"
  html = getHTMLText(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' )
  except:
   traceback.print_exc()
   continue
 
def main():
 stock_list_url = 'http://quote.eastmoney.com/stocklist.html'
 stock_info_url = 'https://gupiao.baidu.com/stock/'
 output_file = 'D:/BaiduStockInfo.txt'
 slist=[]
 getStockList(slist, stock_list_url)
 getStockInfo(slist, stock_info_url, output_file)
 
main()

使用python爬虫实现网络股票信息爬取的demo

优化并且加入进度条显示

import requests
from bs4 import BeautifulSoup
import traceback
import re
def getHTMLText(url, code="utf-8"):
 try:
  r = requests.get(url)
  r.raise_for_status()
  r.encoding = code
  return r.text
 except:
  return ""
def getStockList(lst, stockURL):
 html = getHTMLText(stockURL, "GB2312")
 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 = getHTMLText(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 = count + 1
    print("\r当前进度: {:.2f}%".format(count * 100 / len(lst)), end="")
  except:
   count = count + 1
   print("\r当前进度: {:.2f}%".format(count * 100 / len(lst)), end="")
   continue
def main():
 stock_list_url = 'http://quote.eastmoney.com/stocklist.html'
 stock_info_url = 'https://gupiao.baidu.com/stock/'
 output_file = 'BaiduStockInfo.txt'
 slist = []
 getStockList(slist, stock_list_url)
 getStockInfo(slist, stock_info_url, output_file)
main()

使用python爬虫实现网络股票信息爬取的demo

以上这篇使用python爬虫实现网络股票信息爬取的demo就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python enumerate遍历数组示例应用
Sep 06 Python
Python实现从百度API获取天气的方法
Mar 11 Python
Python 创建子进程模块subprocess详解
Apr 08 Python
python生成验证码图片代码分享
Jan 28 Python
Python实现购物程序思路及代码
Jul 24 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
利用python实现在微信群刷屏的方法
Feb 21 Python
WxPython建立批量录入框窗口
Feb 27 Python
python 进程 进程池 进程间通信实现解析
Aug 23 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
PyInstaller的安装和使用的详细步骤
Jun 02 Python
python绘制趋势图的示例
Sep 17 Python
简单实现python收发邮件功能
Jan 05 #Python
5款非常棒的Python工具
Jan 05 #Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 #Python
Django 2.0版本的新特性抢先看!
Jan 05 #Python
微信跳一跳游戏python脚本
Apr 01 #Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 #Python
django 2.0更新的10条注意事项总结
Jan 05 #Python
You might like
Php Cookie的一个使用注意点
2008/11/08 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
javascript之学会吝啬 精简代码
2010/04/25 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
2016/05/10 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
js判断节假日实例代码
2017/12/27 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
JS数组方法slice()用法实例分析
2020/01/18 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
python二分查找算法的递归实现方法
2016/05/12 Python
Python实现读取并保存文件的类
2017/05/11 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
python简单操作excle的方法
2018/09/12 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
Python time库基本使用方法分析
2019/12/13 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
专业销售业务员求职信
2013/11/18 职场文书
推荐信模板
2014/05/09 职场文书
微笑服务标语
2014/06/24 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技