导航:首页 > 板块资金 > scrapy爬取股票信息

scrapy爬取股票信息

发布时间:2022-11-25 06:44:28

A. 如何使用python抓取炒股软件中资金数据

这个说来有点复杂,用fiddle监控软件跟服务器间的通讯,找到数据源地址,然后用excel或python抓这个源地址数据,可能还要加上反扒代码,构造时间戳等等,你网上找python网抓视频教程看看就知道了。

B. 如何在r语言中抓取股票数据并分析论文

用quantomd包
然后getsymbols函数

分析论文 要看你研究方向
如果是看影响因素 一般回归就行
如果看股票波动和预测 可能需要时间序列

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

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

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

一、网页源码的获取

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

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

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

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

语法 说明

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

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

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

s 空白字符:[<空格> fv]

S 非空白字符:[^s]

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

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

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

三、所得结果的整理

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

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

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

print('代码',' ','简称',' ',' ','最新价',' ','涨跌幅',' ','涨跌额',' ','5分钟涨幅')for i in range(0,len(stock_last),13): #网页总共有13列数据
print(stock_last[i],' ',stock_last[i+1],' ',' ',stock_last[i+2],' ',' ',stock_last[i+3],' ',' ',stock_last[i+4],' ',' ',stock_last[i+5])

D. matlab怎样抓取Yahoo/Sina的股票数据

给你一个例程,用于抓取新浪股票2017年1月份的股票数据。程序如下:

clc;
clear;
year=2017;
season = 1 ;
fprintf('抓取%d年%d季度的数据中...\n', year, season)
[sourcefile, status] = urlread(sprintf('http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_MarketHistory/stockid/000001/type/S.phtml?year=%d&season=%d', year));
expr2 = '<div align="center">(\d*\.?\d*)</div>';
[datafile, data_tokens] = regexp(sourcefile, expr2, 'match', 'tokens'); %从源文件中获取目标数据
data = zeros(size(data_tokens));%产生和数据相同长度的0
for idx = 1:length(data_tokens)
data(idx) = str2double(data_tokens{idx}{1}); %转变数据类型后存入data中
end
%%占坑打个广告,代写matlab程序(毕业设计,课程任务等)
%%信号处理,小波变换,PCA降维,ICA分析,分类器,滤波器等。QQ:1577232787

E. 怎么在股市期间实时抓取rsi数据

怎么样在股市期间,实时抓出rsi数据?
请看下面的分享

i问财财经搜索是同花顺旗下的服务之一,主要针对上市公司的公告、研报、即时新闻等提供搜索及参考资料。
相对于其他股票软件来说,一个强大之处在于用自然语言就可以按你指定的条件进行筛选。而大部分现有的行情软件支持的都不是很好,写起来就费尽心思,还不一定能行。

然而i问财有一个缺陷在于它只能获取一天的股票相关信息。如果,我们希望实现抓取一段时间的股票历史信息,就要通过网页批量抓取。

事实上,我们可以通过制作一个爬虫软件来自己定义时间日期和搜索的关键词,并且批量下载一定日期范围的数据。

我们以抓取每天的收盘价大于均线上股票数目为例子,用r来实现抓取:

因此,我们在r中可以通过制作一个时间段的伪链接来向服务器不断发送搜索请求,从而实现一段日期数据的批量抓取

url=paste("股票 - i问财财经搜索",as.character(as.Date(i, origin = "1970-01-01")) ,input2)

然后,我们查看其中一天的网页源代码,可以找到对应股票数据的xml源码。

F. 如何用爬虫抓取股市数据并生成分析报表

1. 关于数据采集
股票数据是一种标准化的结构数据,是可以通过API接口访问的(不过一般要通过渠道,开放的API有一定的局限性)。也可以通过爬虫软件进行采集,但是爬虫软件采集数据不能保证实时性,根据数据量和采集周期,可能要延迟几十秒到几分钟不等。我们总结了一套专业的爬虫技术解决方案(Ruby + Sidekiq)。能够很快实现这个采集,也可以后台可视化调度任务。

2. 关于展现
网络股票数据的展现,网页端直接通过HTML5技术就已经足够,如果对界面要求高一点,可以采用集成前端框架,如Bootstrap;如果针对移动端开发, 可以使用Ionic框架。

3. 关于触发事件
如果是采用Ruby on Rails的开发框架的话,倒是很方便了,有如sidekiq, whenever这样子的Gem直接实现任务管理和事件触发。

G. 如何使用 Python 抓取雪球网页

#start coding
首先要知道自己在爬什么~楼主说找到HTML的代码云云,思路其实是错误的。因为我们想要的内容不在原始的html里面。但是肯定在浏览器和服务器之间的通信里,我们只要找到这部分数据就好。
#我用的是Firefox的FireBug
选择网络(Chrome中应该是Network),点击调仓历史记录
可以看到浏览器和服务器之间进行了一次通信。我们截获了一个网址。打开看看。可以看到浏览器和服务器之间进行了一次通信。我们截获了一个网址。打开看看。

看上去像是一堆乱码,但是细心的话就会发现……
也就是说我们要的数据都在这里了,所以只要先获取这个页面的内容然后在提取数据就好了~

#python3项目,python2中请使用urllib和urllib2
import urllib.request
url = '?cube_symbol=ZH010389&count=20&page=1'
req = urllib.request.Request(url,headers=headers)
html = urllib.request.urlopen(req).read().decode('utf-8')
print(html)

运行一下~
报错了~报错没关系,兵来将挡水来土掩~
403禁止访问…应该是headers的问题…什么是headers呢…403禁止访问…应该是headers的问题…什么是headers呢…
你现在用python去访问网页,网页得到的请求就是你是python程序,但是网页并不想让程序看到自己,因为他是给人看的,资源都被程序占了算什么,所以我们要让python伪装成浏览器。
依然是用Firebug查看headers信息。
然后我们完善代码在访问过程中添加headers~然后我们完善代码在访问过程中添加headers~

import urllib.request
headers = {'X-Requested-With': 'XMLHttpRequest',
'Referer': '',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0',
'Host': 'xueqiu.com',
#'Connection':'keep-alive',
#'Accept':'*/*',
'cookie':'s=iabht2os.1dgjn9z; xq_a_token=; xq_r_token=; __utma=1.2130135756.1433017807.1433017807.1433017807.1;'
'__utmc=1; __utmz=1.1433017807.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); Hm_lvt_=1433017809; Hm_lpvt_=1433017809'}

url = '?cube_symbol=ZH010389&count=20&page=1'
req = urllib.request.Request(url,headers=headers)
html = urllib.request.urlopen(req).read().decode('utf-8')
print(html)

这次得到想要的结果了~

我们回过头再去看headers会发现,其实有些我并没有写进去,你也可以自己尝试把headers中的某一行注释掉运行。但是每个站是不一样的,你把所有的都填上去是一定能运行成功的,但是可能其中某一些不是必需的。
比如我们这里只要有User-Agent(缺少报错403)和cookie(缺少报错400)。
好~我们现在拿到了想要的数据,但是看上去太复杂了,一点都不友好。现在我们来解析一下这个网页。其实这个网页是json格式的数据包。
然后我们来观察这个数据的解析。然后我们来观察这个数据的解析。
#你可以直接点击Firebug中的JSON来看,也可以复制到Notepad++中使用json viewer插件查看。
大概是这个样子的……大概是这个样子的……
有了json的构成结构我们就可以来解析它了…
我直接拿Python Shell调试,一会儿完善代码

没什么问题~一切看起来很完美的样子~这一步其实没什么难度,只要你能看懂上一步里我们分析的json数据的组成结构,然后一层一层地向下解析数据就可以了。
完善代码。

import urllib.request
import json
headers = {#'X-Requested-With': 'XMLHttpRequest',
#'Referer': '',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0',
#'Host': 'xueqiu.com',
#'Connection':'keep-alive',
#'Accept':'*/*',
'cookie':'s=iabht2os.1dgjn9z; xq_a_token=; xq_r_token=; __utma=1.2130135756.1433017807.1433017807.1433017807.1;'
'__utmc=1; __utmz=1.1433017807.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); Hm_lvt_=1433017809; Hm_lpvt_=1433017809'}
url = '?cube_symbol=ZH010389&count=20&page=1'
req = urllib.request.Request(url,headers=headers)
html = urllib.request.urlopen(req).read().decode('utf-8')
#print(html)
data = json.loads(html)
print('股票名称',end=':')
print(data['list'][0]['rebalancing_histories'][0]['stock_name'],end=' 持仓变化')
print(data['list'][0]['rebalancing_histories'][0]['prev_weight'],end='-->')
print(data['list'][0]['rebalancing_histories'][0]['target_weight'])
print('股票名称',end=':')
print(data['list'][0]['rebalancing_histories'][1]['stock_name'],end=' 持仓变化')
print(data['list'][0]['rebalancing_histories'][1]['prev_weight'],end='-->')
print(data['list'][0]['rebalancing_histories'][1]['target_weight'])

运行程序~

好嘞!搞定收工!
当然也还不能收工……只是我不干了而已……
To-dos:

可以看到程序是面向过程的…重复代码很多,可以通过定义类或方法实现调用
大概……大概得写点注释……不过这么简单直接无脑面向过程的代码真的需要注释吗
如果是想在他持仓变化时收到提醒,需要爬虫定时爬取页面数据与之前数据进行比较
如果你更细心的话会发现最初的json网址的构成是这样的…cube_symbol='#此处可添加任意组合的号码例如ZH010389'&count=‘#此处数字是一次获取的交易变化数量,也就是说你一次性拿到了20次的交易,你点开之前交易记录的时候并不会重新请求数据而是读取了本地现有的数据此处数据可以任意修改哦~很神奇的试一试吧~20’&page=‘和前面联系起来,前面是一次性获取20条记录,这边便是页码,通过对page数的控制利用循环可以输出所有交易过程,当然,40一页和20两页的效果显然是一样的,看你怎么玩儿了~1’
如果你有耐心看完上面那一大段话的话想必你可以有更多的想法。让别人来指导我们的思路是好的,可是投资的机会稍瞬即逝,跟在别人后面是没有前途的,我们要学习。大数据的时代为什么不试试爬更多人的更多投资记录呢?比如在雪球首页爬取首页推荐的组合,然后自动爬取这些组合所做的所有操作~这样你是不是就有了很厚的一本交易目录,结合过去的股市数据(这些能不能想办法自动获取呢?),你可以自己尝试分析别人作出投资决定的原因(是不是可以把数据自动写入一个excel?提示:xlwt3)…最终指导自己的投资。大数据学习,想想都炫酷。可惜我不炒股…

大概就酱紫~希望有帮助~
写这么多是因为我自己在学爬虫…一周了…看到实践的机会就来试一下…所以是边调BUG边写答案~
大概就写这么多吧…后面的To-dos哪天我突然感兴趣了会试着写一下或者过来补充的…
看到这个答案的…前辈还希望多多指教;看到这个答案的新手…欢迎交流:P

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

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

I. 网络爬虫抓取数据 有什么好的应用

一般抓数据的话可以学习Python,但是这个需要代码的知识。
如果是没有代码知识的小白可以试试用成熟的采集器。
目前市面比较成熟的有八爪鱼,后羿等等,但是我个人习惯八爪鱼的界面,用起来也好上手,主要是他家的教程容易看懂。可以试试。

J. 股票数据抓取机器人和商品信息机器人有什么不同

股票数据抓取机器人和商品信息机器人区别在于其一具备编程能力,能够根据不同的应用环境进行智能化判断;其二是具备功能自动化操作能力,能够代替传统的人力进行功能操作;其三是具备数据整理能力,能够对于不同环境下的数据进行归类管理。

能够节省大量的人力资源,很多复杂的流程化数据操作都可以通过数据抓取机器人来完成,不仅速度快,精确度也比较高。

阅读全文

与scrapy爬取股票信息相关的资料

热点内容
excel中如何调取股票数据 浏览:219
中国平安股票最近暴跌 浏览:193
股票主力建仓后会干什么 浏览:598
中瓷电子股票历史交易数据 浏览:470
中新科技股票公司 浏览:711
华润双鹤股票走势 浏览:409
亚太科技的股票 浏览:851
中国国家股票有哪些 浏览:860
重组股票开盘涨还是跌 浏览:991
我想科技股票 浏览:311
上下震荡的股票主力是要干吗 浏览:66
买股票需要开通什么软件 浏览:112
股票走势还到金多多策略 浏览:589
比较分析股票融资和债券融资 浏览:972
和股票的银行卡丢了怎么办 浏览:817
退市三板股票在哪里找 浏览:812
银行储蓄股票金融债券企业债券国债 浏览:762
工银银行股票行情走势 浏览:683
回购注销后股票涨停案例 浏览:712
中国软件股票以后发展 浏览:757