功能描述:

目标:获取股票的名称和交易信息

输出:保存到文件中

程序结构设计:

步骤1:从中财网http://quote.cfi.cn/stockList.aspx获取股票列表

步骤2:根据股票列表获取股票的url,通过每个url获取股票信息

步骤3:将结果保存到文件中

代码实现:

#股票数据定向爬虫
import re
import requests
from bs4 import BeautifulSoup
import traceback#函数功能:原始数据爬取
def getHtmlText(url):try:r = requests.get(url)#r.encoding = r.apparent_encodingr.encoding = 'utf-8'r.raise_for_status()#print(r.text[-500:])return r.textexcept:traceback.print_exc()#函数功能:获取股票列表
def getStockList(lst,stockListURL):ra = [11,12,13,14,15,16,17]#ra = [11]count = 1for i in ra:stock_list_html = getHtmlText(stockListURL+str(i))soup = BeautifulSoup(stock_list_html,"html.parser")a = soup.find_all('a')for i in a:try :href = i.attrs["href"]stock_a = re.search(r'\d{6}.html$',href)if stock_a:count += 1lst.append(stock_a.group(0))except:traceback.print_exc()return count    #函数功能:进入每个股票的链接,爬取对应股票的相关信息
def getStockInfo(lis,stockInfoURL,fpath,count):ready_count = 0f = open(fpath,'a',encoding='utf-8')for j in lis[:100]:stock_info_html = getHtmlText(stockInfoURL+str(j))#print(stock_info_html)try:if stock_info_html == '':continue#每个股票存为字典,数据处理较麻烦,有些数据有“杂音”,需单独给出if判断,或在正则中约束infoDict = { }soup = BeautifulSoup(stock_info_html,"html.parser")stockInfo = soup.find('div',attrs={'id':'act_quote'})name = stockInfo.find('div',attrs={'class':'Lfont'}).string#print(name)infoDict.update({'股票名称': name})stockDetialInfo = stockInfo.find('table',attrs={'id':'quotetab_stock'})td = stockDetialInfo.find_all("td")#print(td)for item in td:#print(item.get_text())text= item.get_text()if(text=="业绩预告"):print("hear")key = "业绩预告"real_val = "业绩预告"else:text_split = re.split(':|:',text)#网站程序员分号用了中文和英文两种……key = text_split[0]val = text_split[1]real_val = re.search(r'(-?\d+.?\d*[%|手|万|元]?)|(--)|(正无穷大)',val).group(0)infoDict[key] = real_valf.write(str(infoDict)+'\n') #每个股票字典数据转为字符串写入文件ready_count += 1print('\r当前第{0:}个,共{1:}个'.format(ready_count,count)) #打印进度except:print('\r当前第{0:}个,共{1:}个'.format(ready_count,count))traceback.print_exc()f.close()def main():lst = []stock_list_url = "http://quote.cfi.cn/stockList.aspx?t=" #股票列表,翻页接口stock_info_url = "http://quote.cfi.cn/"                  #每个股票的链接都是http://quote.cfi.cn/000000.html的形式。000000代表六位的股票代码output_path = "D:\ArticleForProgram\PythonProgram\Spider\StockInfo.txt" #改成自己的stock_count = getStockList(lst,stock_list_url)getStockInfo(lst,stock_info_url,output_path,stock_count)main()

由于多次访问较多链接,以及bs4、re本身效率问题,爬取速度非常慢,建议翻页别太多

【Python爬虫学习】八、股票数据定向爬虫(2020年1月31日成功爬取中财网,百度股市通web版404了)相关推荐

  1. Python 网络爬虫笔记8 -- 股票数据定向爬虫

    Python 网络爬虫笔记8 – 股票数据定向爬虫 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyth ...

  2. python如何爬虫股票数据_python爬虫实例,股票数据定向爬虫

    前言 我服了,这几天,怎么涨两天还不够跌一次,害.希望这个可以帮到自己! "股票数据定向爬虫"实例介绍 功能描述 目标:获取上交所和深交所所有股票的名称和交易信息 输出:保存到文件 ...

  3. Python爬虫学习-新华书店书本数据定向爬虫(实例)

    在学习了半个月python基础知识以及相关的爬虫基础技术后,尝试学以致用,本次决定使用requests.BeautifulSoup来对新华书店(https://www.xhsd.com)小说类书本商品 ...

  4. Python网络爬虫实例1:股票数据定向爬虫

    Python网络爬虫实例:股票数据定向爬虫 一.功能描述 目标:获取上交所和深交所所有股票的名称和交易信息 输出:保存到文件中 技术路线:requests-bs4-re 二.候选数据网站选择 候选网站 ...

  5. Python爬虫-股票数据定向爬虫(东方财富网)

    实例:股票数据定向爬虫 功能描述 目标:获取上交所和深交所所有股票的名称和交易信息 输出:保存到文件中 技术路线:requests­ bs4­ re 候选数据网站的选择 选取原则:股票信息静态存在于H ...

  6. 基于Request+bs4-re技术路线实现股票数据定向爬虫

    基于Request+bs4-re技术路线实现股票数据定向爬虫 一.功能描述 1. 目标 2. 可行性分析 3. 技术路线选择 4. 项目的技术难点 二.程序结构设计 三.程序整体框架 四.程序功能的实 ...

  7. 凤凰网股票数据定向爬虫——改编自北京理工大学嵩天老师的课程实例

    本文导航 前言 功能描述 技术路线 数据网站 程序结构设计 实现过程 实现结果 代码展示 可能遇到的问题 写在后面 前言 最近看到嵩天老师**<python网络爬虫与信息提取>的股票数据定 ...

  8. (6)Python爬虫——爬取中新网新闻

    工欲善其事,必先利其器.我们要进行数据挖掘,就必须先获取数据,获取数据的方法有很多种,其中一种就是爬虫.下面我们利用Python2.7,写一个爬虫,专门爬取中新网http://www.chinanew ...

  9. 《大数据》专题征文:医学大数据(截稿时间:2020年5月31日)

    医学大数据包含来自医疗.生物.医学研究等领域的各类数据,具有文本.数字.影像.视频与音频等多种形态特征,是典型的非结构化数据.分析和挖掘其中的价值信息对于人类健康和疾病诊断.分析与治疗具有重要的科学意 ...

最新文章

  1. mysql select time,MySql查询时间段的方法
  2. c语言指针实验报告总结,c语言指针实验报告
  3. delphi中覆盖最大化消息
  4. mardown 标题带数字_标题中带有数字的故事更成功吗?
  5. 最长上升子序列——动态规划
  6. 2018.6.5今天跟着视频做了一个提交Todolist
  7. java list 内存分页_Java List内存分页
  8. Linux下的截图工具:flameshot
  9. zookeeper 虚拟机搭建好后 外部链接不上_Ubuntu Server搭建Hyperledger Fabric 2.1学习环境...
  10. php禁止外部域名请求,php-阻止来自其他域的请求
  11. h3 经典地图 第3辑(混战+RPG)
  12. aide制作软件教程_AIDE开发教程合集
  13. ORACLE SQL 优化的若干方法详细
  14. 《人月神话》(P8)巴比伦塔的失败
  15. 数据正态分布化 + 基于回归算法的房价预测(含python代码)
  16. 大数据周会-本周学习内容总结05
  17. sql注入进阶/user-agent/基于报错的注入/保姆级教程/一看就会/
  18. Docker从入门到放弃-----Dockerfile常用命令解析与实战(使用docker制作一个开箱即用的consul镜像)
  19. C#调用TSC条码打印机打印条码
  20. Journal of Electronic Imaging(JEI)投稿分享

热门文章

  1. 忙里偷闲又把自己的JWT实现改进了一下
  2. 笔记本题目 复习(一)
  3. 双十一数码好物分享,值得入坑的数码好物分享
  4. 【Kaggle】Kaggle平台使用方法
  5. 中国电视企业逆势增长,助推中国制造走向世界
  6. ise 时钟约束_ISE 约束文件完整讲解
  7. Servlet文件下载例子详解及response的contentType类型大全
  8. ESP8266(mini D1)实现网络服务器Server 用到的硬件概念分析扩展 API调用总结
  9. 最后一次——时间序列分析
  10. 宽带拨号任何使用计算机,宽带拨号密码怎么查看【图解】