使用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自动签到 定时任务 判断节假日的实例
Nov 13 Python
基于python生成器封装的协程类
Mar 20 Python
如何运行.ipynb文件的图文讲解
Jun 27 Python
python多线程同步之文件读写控制
Feb 25 Python
Python 下载及安装详细步骤
Nov 04 Python
Pytoch之torchvision.transforms图像变换实例
Dec 30 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
使用python实现时间序列白噪声检验方式
Jun 03 Python
解决TensorFlow调用Keras库函数存在的问题
Jul 06 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
python简单利用字典破解zip文件口令
Sep 07 Python
python中pivot()函数基础知识点
Jan 03 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编程入门的基本语法知识点总结
2016/01/26 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
实例详解Python装饰器与闭包
2019/07/29 Python
Python用input输入列表的实例代码
2020/02/07 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
七一活动主持词
2015/06/29 职场文书
新人入职感言
2015/07/31 职场文书
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android