使用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中pass语句用法实例分析
Apr 30 Python
python读写ini配置文件方法实例分析
Jun 30 Python
在Python 3中实现类型检查器的简单方法
Jul 03 Python
Python 爬虫爬取指定博客的所有文章
Feb 17 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
python实现树形打印目录结构
Mar 29 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
python try except 捕获所有异常的实例
Oct 18 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
Python-copy()与deepcopy()区别详解
Jul 12 Python
python实现拼接图片
Mar 23 Python
python删除某个目录文件夹的方法
May 26 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令牌 Token改进版
2008/07/18 PHP
php5.3 注意事项说明
2013/07/01 PHP
初识PHP
2014/09/28 PHP
PHP中phar包的使用教程
2017/06/14 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
python文件与目录操作实例详解
2016/02/22 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
应用化学专业本科生求职信
2013/09/29 职场文书
学年自我鉴定范文
2013/10/01 职场文书
促销活动策划方案
2014/01/12 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python
如何在C++中调用Python
2021/05/21 Python
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android