使用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 相关文章推荐
python3编码问题汇总
Sep 06 Python
独特的python循环语句
Nov 20 Python
python 执行shell命令并将结果保存的实例
May 11 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 Python
python实现淘宝秒杀脚本
Jun 23 Python
python抓取搜狗微信公众号文章
Apr 01 Python
在python中画正态分布图像的实例
Jul 08 Python
python实现猜拳小游戏
Apr 05 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
python 连续不等式语法糖实例
Apr 15 Python
用python实现学生管理系统
Jul 24 Python
Pytorch 如何加速Dataloader提升数据读取速度
May 28 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+java实现自动新闻滚动窗口
2006/10/09 PHP
php 字符串函数收集
2010/03/29 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
div层的移动及性能优化
2010/11/16 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
RxJS的入门指引和初步应用
2019/06/15 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
详解使用mocha对webpack打包的项目进行"冒烟测试"的大致流程
2020/04/27 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python读大数据txt
2016/03/28 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
python构建基础的爬虫教学
2018/12/23 Python
Python配置文件处理的方法教程
2019/08/29 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
python RSA加密的示例
2020/12/09 Python
大学生个人推荐信范文
2013/11/25 职场文书
授权委托书
2014/07/31 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
2019 入党申请书范文
2019/07/10 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书