上志商业

创投

股票数据爬取工具(java如何爬取股票数据)

时间:2022-09-28 05:35

   如何抓取股票数据

  可以通过在沪深交易所获得股票代码表,实时获取该股票指定时间段的股票数据。
股票是股份公司发行的所有权凭证,是股份公司为筹集资金而发行给各个股东作为持股凭证并借以取得股息和红利的一种有价证券。每股股票都代表股东对企业拥有一个基本单位的所有权。每支股票背后都有一家上市公司。同时,每家上市公司都会发行股票的。
同一类别的每一份股票所代表的公司所有权是相等的。每个股东所拥有的公司所有权份额的大小,取决于其持有的股票数量占公司总股本的比重。
股票是股份公司资本的构成部分,可以转让、买卖,是资本市场的主要长期信用工具,但不能要求公司返还其出资。

  如何通过软件抓取财经里单只股票数据

  如果你是准备抓历史数据,那还不如直接使用免费的wdz程序,沪深1990年至今的全部日线分钟数据都可以直接输出,而且可转化为各种格式。根本不用去中抓取。

  怎么抓取股票数据

  那么中国股市的数据有没有?答案是肯定的,不过要按照下面的参数做些调整,下面提供全球证券交易所的资料。
上证股票是股票代码后面加上.ss,深证股票是股票代码后面加上.sz
例如:000001 = 000001.sz
深市数据链接:
上市数据链接:
上证综指代码:000001.ss,深证成指代码:399001.SZ,沪深300代码:000300.ss
下面就是世界股票交易所的和缩写,要查找哪个股票交易所的数据,就按照上面的格式以此类推。
上海交易所.SS,Chinese,sl1d1t1c1ohgv
深圳交易所,.SZ,Chinese,sl1d1t1c1ohgv
美国交易所=finance.yahoo.com,,United States,sl1d1t1c1ohgv
加拿大=ca.finance.yahoo.com,.TO,Toronto,sl1d1t1c1ohgv
新西兰=au.finance.yahoo.com,.NZ,sl1d1t1c1ohgv
新加坡=sg.finance.yahoo.com,.SI,Singapore,sl1d1t1c1ohgv
香港Hong Kong,sl1d1t1c1ohgv
台湾Taiwan,sl1d1t1c1ohgv
印度=in.finance.yahoo.com,.BO,Bombay,sl1d1t1c1ohgv
伦敦=uk.finance.yahoo.com,.L,London,sl1d1t1c1ohgv
澳洲=au.finance.yahoo.com,.AX,Sydney,sl1d1t1c1ohgv
巴西=br.finance.yahoo.com,.SA,Sao Paulo,sl1d1t1c1ohgv
瑞典=se.finance.yahoo.com,.ST,Stockholm,sl1d1t1c1ohgv
以上方法只能提供历史数据,实时数据不能抓取,此方法由ArthurXF提供

  如何用python 爬虫抓取金融数据

  获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一。鉴于此,我拾起了Python这把利器,开启了网络爬虫之路。

  本篇使用的版本为python3.5,意在抓取证券之星上当天所有A股数据。程序主要分为三个部分:网页源码的获取、所需内容的提取、所得结果的整理。

  一、网页源码的获取

  很多人喜欢用python爬虫的原因之一就是它容易上手。只需以下几行代码既可抓取大部分网页的源码。

  import urllib.request
url=ar.com/stock/ranklist_a_3_1_1.html  #目标headers={User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64)}  #伪装浏览器请求报头request=urllib.request.Request(url=url,headers=headers)  #请求服务器response=urllib.request.urlopen(request)  #服务器应答content=response.read().decode(gbk)   #以一定的编码方式查看源码print(content)  #打印页面源码
 

  虽说抓一页的源码容易,不过在一个内大量抓取网页源码却经常遭到服务器拦截,顿时感觉世界充满了恶意。于是我开始研习突破反爬虫限制的功法。

  1.伪装流浪器报头

  很多服务器通过浏览器发给它的报头来确认是否是人类用户,所以我们可以通过模仿浏览器的行为构造请求报头给服务器发送请求。服务器会识别其中的一些参数来识别你是否是人类用户,很多都会识别User-Agent这个参数,所以请求头最好带上。有一些警觉性比较高的可能还会通过其他参数识别,比如通过Accept-Language来辨别你是否是人类用户,一些有防盗链功能的还得带上referer这个参数等等。

  2.随机生成UA

  证券之星只需带User-Agent这个参数就可以抓取页面信息了,不过连续抓取几页就被服务器阻止了。于是我决定每次抓取数据时模拟不同的浏览器发送请求,而服务器通过User-Agent来识别不同浏览器,所以每次爬取页面可以通过随机生成不同的UA构造报头去请求服务器,

  3.减慢爬取速度

  虽然模拟了不同浏览器爬取数据,但发现有的时间段可以爬取上百页的数据,有时候却只能爬取十来页,看来服务器还会根据你的访问的频率来识别你是人类用户还是网络爬虫。所以我每抓取一页都让它随机休息几秒,加入此句代码后,每个时间段都能爬取大量股票数据了。

  4.使用代理IP

  天有不测风云,程序在公司时顺利测试成功,回寝室后发现又只能抓取几页就被服务器阻止了。惊慌失措的我赶紧询问度娘,获知服务器可以识别你的IP,并记录此IP访问的次数,可以使用高匿的代理IP,并在抓取的过程中不断的更换,让服务器无法找出谁是真凶。此功还未修成,欲知后事如何,请听下回分解。

  5.其他突破反爬虫限制的方法

  很多服务器在接受浏览器请求时会发送一个cookie文件给浏览器,然后通过cookie来跟踪你的访问过程,为了不让服务器识别出你是爬虫,建议最好带上cookie一起去爬取数据;如果遇上要模拟登陆的,为了不让自己的账号被拉黑,可以申请大量的账号,然后再爬入,此处涉及模拟登陆、验证码识别等知识,暂时不再深究...总之,对于主人来说,有些爬虫确实是令人讨厌的,所以会想出很多方法限制爬虫的进入,所以我们在强行进入之后也得注意些礼仪,别把人家的给拖垮了。

  二、所需内容的提取

  获取网页源码后,我们就可以从中提取我们所需要的数据了。从源码中获取所需信息的方法有很多,使用正则表达式就是比较经典的方法之一。我们先来看所采集网页源码的部分内容。

  为了减少干扰,我先用正则表达式从整个页面源码中匹配出以上的主体部分,然后从主体部分中匹配出每只股票的信息。代码如下。

  pattern=re.compile(<tbody[\s\S]*</tbody>)  
body=re.findall(pattern,str(content))  #匹配<tbody和</tbody>之间的所有代码pattern=re.compile(>(.*?)<)
stock_page=re.findall(pattern,body[0])  #匹配>和<之间的所有信息
 

  其中compile方法为编译匹配模式,findall方法用此匹配模式去匹配出所需信息,并以列表的方式返回。正则表达式的语法还挺多的,下面我只罗列所用到符号的含义。

  语法    说明  

  .    匹配任意除换行符“\n”外的字符  

  *    匹配前一个字符0次或无限次  

  ?    匹配前一个字符0次或一次  

  \s    空白字符:[<空格>\t\r\n\f\v]  

  \S    非空白字符:[^\s]  

  [...]    字符集,对应的位置可以是字符集中任意字符  

  (...)    被括起来的表达式将作为分组,里面一般为我们所需提取的内容  

  正则表达式的语法挺多的,也许有大牛只要一句正则表达式就可提取我想提取的内容。在提取股票主体部分代码时发现有人用xpath表达式提取显得更简洁一些,看来页面解析也有很长的一段路要走。

  三、所得结果的整理

  通过非贪婪模式(.*?)匹配>和<之间的所有数据,会匹配出一些空白字符出来,所以我们采用如下代码把空白字符移除。

  stock_last=stock_total[:] #stock_total:匹配出的股票数据for data in stock_total:  #stock_last:整理后的股票数据
if data==:
stock_last.remove()
 

  最后,我们可以打印几列数据看下效果,代码如下

  print(代码,\t,简称,   ,\t,最新价,\t,涨跌幅,\t,涨跌额,\t,5分钟涨幅)for i in range(0,len(stock_last),13):        #网页总共有13列数据
print(stock_last[i],\t,stock_last[i+1], ,\t,stock_last[i+2],  ,\t,stock_last[i+3],  ,\t,stock_last[i+4],  ,\t,stock_last[i+5])
炒股不算是违法的。

  你这个说得不对了,赌博是非理性的,而股市里要生存就必须理性,大部分在股市不理性所以大部分人亏钱;赌博是投机性的,而股市是有规律和内在价值的。在股市里真正的赢家不是考赌博的方式赚钱的。
你为什么说股市崩盘,你要么不是股民,是股民那你一定亏钱了。

  上关于股票的数据可靠吗?

  能可靠吗。那直接炒股去了

  java爬虫实时获取页面数据并存入数据库

  国家电网的?