当前位置: 移动技术网 > IT编程>脚本编程>Python > 使用 Scrapy 爬取股票代码

使用 Scrapy 爬取股票代码

2019年02月26日  | 移动技术网IT编程  | 我要评论

尘世美伴奏,秦皇岛抚宁杀人案,电动绞肉机

个人博客: 

源码地址: 

抓取工具:scrapy

scrapy 介绍

scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取 api 所返回的数据(例如 amazon associates web services ) 或者通用的网络爬虫。

安装 scrapy

pip install scrapy

抓取步骤

选择一个网站 --> 定义数据 --> 编写 spider

首先使用 scrapy 创建一个项目

scrapy startproject tutorial

1.选择一个网站

这里我们选择的是东方财富网的股票代码页面: 

2.定义要抓取的数据

我们需要抓取股票的代码 id,因此只需要定义 stock_id

class stockitem(scrapy.item):
    stock_id = scrapy.field()

3.编写 spider

class stockspider(scrapy.spider):
    name = 'stock'

    def start_requests(self):
        url = 'http://quote.eastmoney.com/stocklist.html'
        yield request(url)

    def parse(self, response):
        item = stockitem()
        print "===============上海================"
        stocks_sh = response.css('div#quotesearch ul li a[href*="http://quote.eastmoney.com/sh"]::text')
        for stock in stocks_sh:
            item['stock_id'] = 's_sh' + re.findall('\((.*?)\)', stock.extract())[0]
            yield item

        print "===============深圳================"
        stocks_sz = response.css('div#quotesearch ul li a[href*="http://quote.eastmoney.com/sz"]::text')
        for stock in stocks_sz:
            item['stock_id'] = 's_sz' + re.findall('\((.*?)\)', stock.extract())[0]
            yield item

玄机尽在response.css('div#quotesearch ul li a[href*=""]::text ’),使用了 css 来过滤自己需要的数据。

运行程序

scrapy crawl stock -o stock.csv

即可生成 stock.csv 文件

预览如下:

stock_id
s_sh201000
s_sh201001
s_sh201002
s_sh201003
s_sh201004
s_sh201005
s_sh201008
s_sh201009
s_sh201010
s_sh202001
s_sh202003
s_sh202007
s_sh203007
s_sh203008
s_sh203009
…

如果要查询单个股票的股票行情,可以使用新浪的股票接口:

例如

即可得到浪潮软件的股票行情

var hq_str_s_sh600756="浪潮软件,19.790,1.140,6.11,365843,70869";

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网