Python 网络爬虫笔记8 – 股票数据定向爬虫


Python 网络爬虫系列笔记是笔者在学习嵩天老师的《Python网络爬虫与信息提取》课程及笔者实践网络爬虫的笔记。

课程链接:Python网络爬虫与信息提取
参考文档:
Requests 官方文档(英文)
Requests 官方文档(中文)
Beautiful Soup 官方文档
re 官方文档
Scrapy 官方文档(英文)
Scrapy 官方文档(中文)


股票数据定向爬虫


介绍:

  • 爬取中国股市的股票信息
  • 东方财富网:http://quote.eastmoney.com/stocklist.html
  • 百度股票:https://gupiao.baidu.com/stock/
  • 单个股票:https://gupiao.baidu.com/stock/sz002439.html

步骤:

  1. 从东方财富网获取股票列表
  2. 根据股票列表逐个到百度股票获取个股信息根据股票列表逐个到百度股票获取个股信息
  3. 将结果存储到文件将结果存储到文件
import requests
from bs4 import BeautifulSoup
import redef get_html_text(url, code='utf-8'):"""获取 HTML 页面内容"""try:r = requests.get(url)r.raise_for_status()# r.encoding = r.apparent_encoding# 如果事先知道编码,就不用从内容中分析编码格式,提高运行速度r.encoding = codereturn r.textexcept:return ""def get_stocks_list(stock_list, stock_url):"""东方财富接口,爬取上证、深证所有上市公司的股票代码"""html = get_html_text(stock_url, 'GB2312')soup = BeautifulSoup(html, 'html.parser')a = soup.find_all('a')for i in a:try:href = i.attrs['href']stock_list.append(re.findall(r's[hz]\d{6}', href)[0])except:continuedef get_stock_info(stock_list, stock_url, file_path):"""百度股票接口,根据股票的代码爬取详细信息"""count = 0for stock in stock_list:url = stock_url + stock + ".html"html = get_html_text(url)try:if html == "":continueinfo_dict = {}soup = BeautifulSoup(html, 'html.parser')# 找到股票信息的标签stock_info = soup.find('div', attrs={'class': 'stock-bets'})# 股票信息的标签中找到股票名字name = stock_info.find_all(attrs={'class': 'bets-name'})[0]info_dict.update({'股票名称': name.text.split()[0]})# 股票的各种详细信息key_list = stock_info.find_all('dt')value_list = stock_info.find_all('dd')for i in range(len(key_list)):key = key_list[i].text.strip()val = value_list[i].text.strip()info_dict[key] = valwith open(file_path, 'a', encoding='utf-8') as f:f.write(str(info_dict) + '\n')# 显示当前进度count = count + 1print("\r当前进度: {:.2f}%".format(count*100/len(stock_list)),end="")except:count = count + 1print("\r当前进度: {:.2f}%".format(count * 100 / len(stock_list)), end="")continuedef main():"""爬取上市公司列表,根据列表爬取具体的信息,保存在文件中"""stock_list_url = 'http://quote.eastmoney.com/stocklist.html'stock_info_url = 'https://gupiao.baidu.com/stock/'output_file = 'E:/stocks.txt'stock_list = []get_stocks_list(stock_list, stock_list_url)get_stock_info(stock_list, stock_info_url, output_file)if __name__ == '__main__':print('running crawl_stocks')main()

Python 网络爬虫笔记8 -- 股票数据定向爬虫相关推荐

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

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

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

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

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

    功能描述: 目标:获取股票的名称和交易信息 输出:保存到文件中 程序结构设计: 步骤1:从中财网http://quote.cfi.cn/stockList.aspx获取股票列表 步骤2:根据股票列表获 ...

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

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

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

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

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

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

  7. 爬虫03_股票数据定向爬虫

    1.准备工作 功能描述: 目标:获取上交所和深交所所有股票的名称和交易信息 输出:保存到文件中 所用技术:requests.bs4.re.csv 数据网站选择: 新浪股票:http://finance ...

  8. python爬虫笔记(七):实战(三)股票数据定向爬虫

    目标分析及描述 #CrawBaiduStocksA.py import requests from bs4 import BeautifulSoup import traceback import r ...

  9. 现在还有人说Python 爬虫没用吗?股票数据定向爬虫让你轻松了解股势

    说明 网站选择原则: 股票信息静态存在于html页面中,非js代码生成,没有Robbts协议限制. 选取方法: 打开网页,查看源代码,搜索网页的股票价格数据是否存在于源代码中. 需要相关python爬 ...

最新文章

  1. NOI.AC NOIP模拟赛 第六场 游记
  2. 云视频通信在建筑施工企业的应用
  3. yum php devel_yum源里找不到 php54w-devel,求可用yum源
  4. Codeforces 698D Limak and Shooting Points (搜索)
  5. 工程师文化播客: 从工程转向管理,访谈Github公司的Phil Haack
  6. 命令执行无回显的一些姿势
  7. [转]自定义序列化对象
  8. spring gateway 鉴权_通过spring实现service变成controller,代码得到了简化
  9. Python envoy 模块源码剖析
  10. 删除病毒ETH的方法 如何解密sql文件 恢复mdf数据库文件
  11. 【转】千万级并发实现的秘密:内核不是解决方案,而是问题所在!
  12. java swing开发打飞机的小游戏源代码下载
  13. 计算机网络课程实验5——交换机VLAN
  14. 家用智能门锁常见的开锁方式
  15. journalctl日志工具使用方法
  16. http://download.chinaitlab.com/testdoc/files/8628.
  17. 浏览器扫码打开Android/iOS App
  18. 《改变心理学的40项研究》第二章 知觉与意识
  19. coursera 助学金申请模版
  20. 为什么网站要使用手机验证码?

热门文章

  1. vue2.0 之文本渲染-v-html、v-text
  2. summerDao-比mybatis更强大无需映射配置的dao工具
  3. 【miscellaneous】关于gst ffmpeg插件的安装心得
  4. 《nodejs+gulp+webpack基础实战篇》课程笔记(四)-- 实战演练
  5. Gradle初探(一):创建一个Gradle项目
  6. Odoo(OpenERP)配置文件openerp-server.conf详解
  7. android HDMI 清晰度 分辨率
  8. 通过结构体某个成员的地址计算结构体首地址 (转)
  9. 牛客网Java刷题知识点之字节缓冲区练习之从A处复制文本文件到B处(BufferedReader、BufferedWriter)、复制文本文件的原理图解...
  10. BZOJ3160:万径人踪灭