Python股票数据爬虫解读

640?wx_fmt=jpeg

文末赠书活动,欢迎参加

中国A股2019年开年市场火爆,随着股市大涨,沪市指数逼近3000点大关,三大股指均创下本轮反弹新高,股市单日成交过万亿,许多人跑步进入股市。

要想在股市中获得收益,对股票数据进行分析非常重要,要进行数据分析必须有数据,然而数据收集是很费时费力的事情,有些网站中会有我们需要的数据,如果能把这些数据下载到电脑中,对后面使用机器学习算法处理非常有用。例如下图是某一日的股票行情信息:

640?wx_fmt=jpeg

如果想得到上面表格中的数据,可以使用网络爬虫实现。网络爬虫,又被称为网页蜘蛛,网络机器人,有时也称为网页追逐者,是一种按照一定的规则,自动地抓取互联网上网页中相应信息(文本、图片等)的程序或者脚本,然后把抓取的信息存储到自己的计算机上。

程序主要由三部分组成:网页源码的获取、删除冗余的内容和标签和结果的显示。

实现步骤如下:

1、网页源码的获取

url='http://quote.stockstar.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')   #以一定的编码方式查看源码
for page in range(1,8):
    url='http://quote.stockstar.com/stock/ranklist_a_3_1_'+str(page)+'.html'
request=urllib.request.Request(url=url,headers={"User-Agent":random.choice(user_agent)}) #随机从user_agent列表中抽取一个元素
    content=response.read().decode('gbk')       #读取网页内容

2、删除冗余的内容

获取网页源码后,就可以从中提取我们所需要的数据了。如前所述,提取的网页内容中有很多html的标签,空格等内容,此时需要从源码删除这些信息,这里仍然使用正则表达式,代码如下:

  pattern=re.compile('<tbody[\s\S]*</tbody>'
    body=re.findall(pattern,str(content))
    pattern=re.compile('>(.*?)<')
    stock_page=re.findall(pattern,body[0])      #正则匹配
    stock_total.extend(stock_page)
    time.sleep(random.randrange(1,4))   

3、结果的显示

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])

下图是使用爬虫获取的数据。

640?wx_fmt=jpeg

有了上面数据之后,我们就可以使用机器学习算法,自己编制程序进行预测了。

文章节选自北京大学出版社出版的《Python 3 数据分析与机器学习实战》,这本书现在在京东参加满100减50的活动,点击阅读原文,即可了解更多。书香节优惠码 :G469NF,4月16号至25号可用,在每满100减50的基础上使用该优惠码满200元再减30元。


640?wx_fmt=jpeg


在文章底部留言区说说给你印象最深刻或你最喜欢的Python开发项目本文留言区点赞数排名前5的朋友,可以免费获得《Python3数据分析与机器学习实战》图书一本, 奖品图书由北京大学出版社提供。


活动截止日期:4月25日(周四)晚上22:00

640?wx_fmt=jpeg

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值