使用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实现在pickling的时候压缩的方法
Sep 25 Python
python实现简单温度转换的方法
Mar 13 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 Python
详解Python传入参数的几种方法
May 16 Python
python实现随机漫步方法和原理
Jun 10 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
pip安装python库的方法总结
Aug 02 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
新手学习Python2和Python3中print不同的用法
Jun 09 Python
Python3+Django get/post请求实现教程详解
Feb 16 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里面的抽象类
2010/01/28 PHP
Laravel5中contracts详解
2015/03/02 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
JS面向对象编程详解
2016/03/06 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
Three.js快速入门教程
2016/09/09 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
JavaScript实现新年倒计时效果
2018/11/17 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
[05:48]DOTA2英雄梦之声vol21 屠夫
2014/06/20 DOTA
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
跟老齐学Python之折腾一下目录
2014/10/24 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
python实现多进程代码示例
2018/10/31 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
python IP地址转整数
2020/11/20 Python
质量保证书格式
2015/02/27 职场文书
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫