使用 Scrapy 爬取股票代码
程序员文章站
2023-02-08 11:27:09
个人博客: https://mypython.me 源码地址: https://github.com/geeeeeeeek/scrapy_stock 抓取工具:scrapy scrapy 介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存 ......
个人博客:
源码地址:
抓取工具: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";