使用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中列表和元祖的使用方法
Apr 25 Python
python+django加载静态网页模板解析
Dec 12 Python
python读取有密码的zip压缩文件实例
Feb 08 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
Sep 26 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
Keras SGD 随机梯度下降优化器参数设置方式
Jun 19 Python
python3.4中清屏的处理方法
Jul 06 Python
拿来就用!Python批量合并PDF的示例代码
Aug 10 Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 Python
详解Python中__new__方法的作用
Mar 31 Python
如何利用python创作字符画
Jun 25 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
模仿OSO的论坛(一)
2006/10/09 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
js中直接声明一个对象的方法
2014/08/10 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
Vue如何引入远程JS文件
2017/04/20 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
python实现电子书翻页小程序
2019/07/23 Python
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
赡养老人协议书
2014/04/21 职场文书
户外活动总结范文
2014/04/30 职场文书
教师求职信范文
2014/05/24 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript
一文解答什么是MySQL的回表
2022/08/05 MySQL