目标分析及描述

#CrawBaiduStocksA.py
import requests
from bs4 import BeautifulSoup
import traceback
import redef getHTMLText(url):try:r = requests.get(url)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept: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:continuedef getStockInfo(lst, stockURL, fpath):for stock in lst:url = stockURL + stock + ".html"html = getHTMLText(url)try:if html=="":continueinfoDict = {}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].textval = valueList[i].textinfoDict[key] = valwith open(fpath, 'a', encoding='utf-8') as f:f.write( str(infoDict) + '\n' )except:traceback.print_exc()continuedef 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()
复制代码

优化一下:

import requests
from bs4 import BeautifulSoup
import traceback
import redef getHTMLText(url, code="utf-8"):try:r = requests.get(url)r.raise_for_status()r.encoding = codereturn r.textexcept: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:continuedef getStockInfo(lst, stockURL, fpath):count = 0for stock in lst:url = stockURL + stock + ".html"html = getHTMLText(url)try:if html=="":continueinfoDict = {}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].textval = valueList[i].textinfoDict[key] = valwith open(fpath, 'a', encoding='utf-8') as f:f.write( str(infoDict) + '\n' )count = count + 1print("\r当前进度: {:.2f}%".format(count*100/len(lst)),end="")except:count = count + 1print("\r当前进度: {:.2f}%".format(count*100/len(lst)),end="")continuedef 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()复制代码

转载于:https://juejin.im/post/5aa7abf4518825558453aca4

python爬虫笔记(七):实战(三)股票数据定向爬虫相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. php 爬取股票数据库,爬虫框架Scrapy实战一——股票数据爬取

    简介 目标: 获取上交所和深交所所有股票的名称和交易信息. 输出: 保存到文件中. 技术路线:Scrapy爬虫框架 语言: python3.5 由于在上一篇博客中已经介绍了股票信息爬取的原理,在这里不 ...

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

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

最新文章

  1. 网站权重增加需要做的
  2. sqlserver中int 类型的字段,值为null的时候引发一个问题
  3. VC使用CRT调试功能检测内存泄漏(转载)
  4. 什么是 Linux 安全基线?
  5. NFS技术实现图片共享存储
  6. mysql按加号没反应_请各位大哥给小老弟解疑答惑一下 为什么点击加号没有反应?感谢...
  7. DevExpress GridControl 后台设置列
  8. tf.contrib在tf2中无法使用
  9. 移动端点击延迟300ms传说 你听过吗
  10. Java类的各种成员初始化顺序
  11. python处理json文件_python处理json文件
  12. xlib/x11:创建一个监测键盘事件的窗口-4-箭头控制窗口移动
  13. 【VMCloud云平台】SCOM配置(十五)-启用SCOM日志审计(ACS)
  14. 南阳71(独木舟上的旅行)
  15. C# 实现复杂对象的序列化与反序列化
  16. JSP购物车案例精简版-适合小白学习
  17. H264视频编码原理基础分析
  18. java 压缩二进制流_在java中压缩二进制数据
  19. 计算机无法搜索到打印机驱动,教你一招解决电脑无法找到打印机驱动程序包要求的核心驱动的问题 - 驱动管家...
  20. 前后端实现Base64格式的传参及转换

热门文章

  1. 基于mykernel完成多进程的简单内核
  2. 解决Pytohn安装第三方库出现read timed out 问题
  3. Oracle12c:安装后新建用户及其默认表空间,并创建表测试
  4. PHP中的mb_convert_encoding与iconv函数介绍
  5. listview频繁刷新报错
  6. c语言全段字符的类别,言语理解规律整理d0c.doc
  7. mysql 8.0.22_最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)
  8. STM32安装Keil5、芯片支持包、startup启动文件(启动过程分析)、建立工程、烧写
  9. python组合数据分类_Python 数据可视化:分类特征统计图
  10. linux jetty 安装目录结构,Linux下Jetty 9安装部署