股票数据定向爬虫

  • 功能描述:
    • 目标:获取上交所和深交所所有股票的名称和交易信息
    • 输出:保存到文件中
    • 技术路线:requests-bs4-re
  • 候选数据网站的选择:
  • 候选数据网站的选择:
    • 选取原则:股票信息静态存在于HTML页面中,非js代码生成,没有Robots协议限制。
    • 选取方法:浏览器F12,源代码查看等。
    • 选取心态:不要纠结与某个网站,多找信息源尝试。
  • 程序的结构设计:
  • 实例编写:
 1 import requests
 2 import re
 3 from bs4 import BeautifulSoup
 4 import traceback
 5
 6 def getHTMLText(url):
 7     try:
 8         r = requests.get(url, timeout = 30)
 9         r.raise_for_status()
10         r.encoding = r.apparent_encoding
11         return r.text
12     except:
13         return ""
14
15 def getStockList(lst, stockURL):
16     html = getHTMLText(stockURL)
17     soup = BeautifulSoup(html, ‘html.parser‘)
18     a = soup.find_all(‘a‘)
19     for i in a:
20         try:
21             href = i.attrs[‘href‘]
22             lst.append(re.findall(r"[s][hz]\d{6}",href)[0])
23         except:
24             continue
25
26 def getStockInfo(lst, stockURL, fpath):
27     for stock in lst:
28         url = stockURL + stock +".html"
29         html = getHTMLText(url)
30         try:
31             if html == "":
32                 continue
33             infoDict = {}
34             soup = BeautifulSoup(html, ‘html.parser‘)
35             stockInfo = soup.find(‘div‘,attrs={‘class‘:‘stock-bets‘})
36
37             name = stockInfo.find_all(attrs={‘class‘:‘bets-name‘})[0]
38             infoDict.update({‘股票名称‘:name.text.split()[0]})
39
40             keyList = stockInfo.find_all(‘dt‘)
41             valueList = stockInfo.find_all(‘dd‘)
42             for i in range(len(keyList)):
43                 key = keyList[i].text
44                 val = valueList[i].text
45                 infoDict[key] = val
46
47             with open(fpath,‘a‘,encoding=‘utf-8‘) as f:
48                 f.write(str(infoDict) + ‘\n‘)
49         except:
50             traceback.print_exc()
51             continue
52
53 def main():
54     stock_list_url = ‘http://quote.eastmoney.com/stocklist.html‘
55     stock_info_url = ‘https://gupiao.baidu.com/stock/‘
56     output_file = ‘G://Learning materials//Python//python网页爬虫与信息提取//BaiduStockInfo.txt‘
57     slist = []
58     getStockList(slist,stock_list_url)
59     getStockInfo(slist,stock_info_url,output_file)
60 main()
  • 代码优化:
    • 提升用户体验:增加动态进度显示

原文地址:https://www.cnblogs.com/beiyin/p/9129650.html

时间: 2024-08-01 14:43:36

股票数据定向爬虫的相关文章

【实例】--股票数据定向爬取

从股票列表网页获取股票代码 根据股票代码去股票详情页面获取股票详细信息 1. 股票列表页面 凤凰网财经—股票信息 http://app.finance.ifeng.com/list/stock.php?t=ha&f=chg_pct&o=desc&p=1 2. 股票详细信息 老虎社区—股票详情 https://www.laohu8.com/stock/600210 股票数据定向爬取思路 1. 查看网站robots协议,查看网站是否可以爬取 2. 查看网页源代码,查看网页信息是否可以直

股票数据Scrapy爬虫

功能描述: 技术路线:scrapy 目标:获取上交所和深交所所有股票的名称和交易信息 输出:保存到文件中 数据网站的确定 获取股票列表: 东方财富网:http://quote.eastmoney.com/stock_list.html 获取个股信息: 百度股票:https://gupiao.baidu.com/stock/ 单个股票:https://gupiao.baidu.com/stock/sz002439.html 步骤: 步骤1:建立工程和Spider模板 D:\pycodes>scra

淘宝商品与股票数据爬虫实战

在学过正则表达式后,跟着老师实战了下"淘宝商品比价定向爬虫"和"股票数据定向爬虫"这两个. 一开始我想了下,思路好迷糊,不好从哪下手.在看了老师的教程后,才慢慢的理解了.下面是代码与效果 淘宝商品比价定向爬虫: 1 import requests 2 import re 3 4 def getHTMLText(url): 5 try: 6 r = requests.get(url, timeout = 30) 7 r.raise_for_status() 8 r.e

爬虫练习五:多进程爬取股市通股票数据

在上网查阅一些python爬虫文章时,看见有人分享了爬取股票的交易数据,不过实现得比较简单.这里就做个小练习,从百度股票批量爬取各股票的交易信息. 文章出处为:Python 爬虫实战(2):股票数据定向爬虫. 爬取数据:每个股票的日度交易数据 爬取来源:百度股市通 python版本:3.6.6 时间:20190115 1. 找到日度数据url 以中化国际的日K数据为例,通过分析网页,我们可以发现,日度交易数据是通过接口的形式获取的. 获取的url为:https://gupiao.baidu.co

Python爬虫成长之路:抓取证券之星的股票数据

获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所有A股数据.程序主要分为三个部分:网页源码的获取.所需内容的提取.所得结果的整理. 一.网页源码的获取 很多人喜欢用python爬虫的原因之一就是它容易上手.只需以下几行代码既可抓取大部分网页的源码. import urllib.request url='http://quote.stockstar

Python爬虫 股票数据爬取

前一篇提到了与股票数据相关的可能几种数据情况,本篇接着上篇,介绍一下多个网页的数据爬取.目标抓取平安银行(000001)从1989年~2017年的全部财务数据. 数据源分析 地址分析 http://money.finance.sina.com.cn/corp/go.php/vFD_FinancialGuideLine/stockid/000001/ctrl/2017/displaytype/4.phtml 在浏览器(PC上)中打开这个地址,就可以看到下图显示的财务数据.这个地址是一个通用格式:(

如何做最好的定向爬虫架构

如何做最好的定向爬虫架构 姓名:郭钟 当前职位:某创业公司担任爬虫工程师 摘要 随着互联网信息的不断发展,信息数据的挖掘技术也不断的发展.网络爬虫技术也随之得到了巨大的发展.而对于内容型驱动的网站来说反扒是一件必不可少的事情.很多网站用Jquery加壳.登录验证.限制单位IP每秒请求次数来阻止爬虫窃取数据.所以爬虫的智能性也受到越来大的挑战.特别是国内高匿代理IP资源少的问题给爬虫的技术发展代理巨大挑战.本论文由浅入深剖析一个定向爬虫最为重要的几点,由此得出一个适应现国内爬虫架构的解决方案. 引

定向爬虫 - Python模拟新浪微博登录

写在前面 当我们试图从新浪微博抓取数据时,我们会发现网页上提示未登录,无法查看其他用户的信息. 模拟登录是定向爬虫制作中一个必须克服的问题,只有这样才能爬取到更多的内容. 实现微博登录的方法有很多,一般我们在模拟登录时首选WAP版. 因为PC版网页源码中包括很多的js代码,提交的内容也更多,不适合机器模拟登录. 我们实现微博登录的大体思路是这样的: 用抓包工具把正常登录时要提交的字段都记录下来. 模拟提交这些字段. 判断是否登录成功. 原理很简单,让我们一步一步来实现吧. 一.抓包利器Fiddl

中国大学排名(定向爬虫)实例

中国大学排名(定向爬虫)实例 获取中国大学排名的爬虫实例,采用了requests和BeautifulSoup4函数库 中国大学排名网址:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html 功能描述: 输入:大学排名URL连接 输出:大学排名信息的屏幕输出(排名,大学名称,总分) 技术路线:equests和bs4 定向爬虫:仅对输入URL进行爬取,不扩展爬取 robots协议: 定向爬虫网址是否提供robots协议的约定,由于我们只访问了这个