使用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 django事务transaction源码分析详解
Mar 17 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
Python实现学生成绩管理系统
Apr 05 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
总结python中pass的作用
Feb 27 Python
django框架模板语言使用方法详解
Jul 18 Python
由面试题加深对Django的认识理解
Jul 19 Python
python实现银行管理系统
Oct 25 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
Python Numpy库常见用法入门教程
Jan 16 Python
详细分析Python垃圾回收机制
Jul 01 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 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 curl的深入解析
2013/06/02 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
IE8 中使用加速器(Activities)
2010/05/14 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
Windows下为Python安装Matplotlib模块
2015/11/06 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
数学专业推荐信范文
2013/11/21 职场文书
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
思想专业自荐信范文
2013/12/25 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
教师开学感言
2014/02/14 职场文书
2014年元旦活动方案
2014/02/15 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
致共产党员倡议书
2014/04/16 职场文书
中学生检讨书范文
2014/11/03 职场文书
迎新年主持词
2015/07/06 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis
Python Pandas模块实现数据的统计分析的方法
2021/06/24 Python
Golang的继承模拟实例
2021/06/30 Golang
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android