使用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线程锁(thread)学习示例
Dec 04 Python
Python获取央视节目单的实现代码
Jul 25 Python
web.py 十分钟创建简易博客实现代码
Apr 22 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
教你用一行Python代码实现并行任务(附代码)
Feb 02 Python
python读取xlsx的方法
Dec 25 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
wxPython实现画图板
Aug 27 Python
python中必要的名词解释
Nov 20 Python
python函数不定长参数使用方法解析
Dec 14 Python
Python定义函数时参数有默认值问题解决
Dec 19 Python
利用Python实现斐波那契数列的方法实例
Jul 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
php字符串截取问题
2006/11/28 PHP
php调用mysql存储过程
2007/02/14 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
CSS常用网站布局实例
2008/04/03 Javascript
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
2016/11/20 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
解析Python中的__getitem__专有方法
2016/06/27 Python
Python实现一个简单的验证码程序
2017/11/03 Python
python Pexpect 实现输密码 scp 拷贝的方法
2019/01/03 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
T3官网:头发造型工具
2019/12/26 全球购物
2013年入党人员的自我鉴定
2013/10/25 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
活动总结怎么写啊
2014/05/07 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis