使用scrapy抓取股票代码
admin
2023-07-12 07:27:04
0

个人博客:https://mypython.me

源码地址:https://github.com/geeeeeeeek/scrapy_stock

抓取工具:scrapy

scrapy介绍

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

安装scrapy

pip install Scrapy
抓取步骤

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

首先使用scrapy创建一个项目

scrapy startproject tutorial
  1. 选择一个网站

这里我们选择的是东方财富网的股票代码页面:http://quote.eastmoney.com/stocklist.html

  1. 定义要抓取的数据

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

class StockItem(scrapy.Item):
    stock_id = scrapy.Field()
  1. 编写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*="http://quote.eastmoney.com/sh"]::text’),使用了css来过滤自己需要的数据。

运行程序

scrapy crawl stock -o stock.csv

即可生成stock.csv文件

预览如下:

stock_id
s_sh301000
s_sh301001
s_sh301002
s_sh301003
s_sh301004
s_sh301005
s_sh301008
s_sh301009
s_sh301010
s_sh302001
s_sh302003
s_sh302007
s_sh303007
s_sh303008
s_sh303009
…

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

http://hq.sinajs.cn

例如

http://hq.sinajs.cn/list=s_sh700756

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

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

相关内容

热门资讯

驻马店非遗“大集”开张 把网络... 顶端新闻记者 王丹/文 李思翰 胡楚昊/图红纸剪出“抵制网络谣言”,糖画写下“不信谣不传谣”……5月...
A股三大指数集体收涨 贵金属涨...   A股三大指数集体收涨 贵金属涨幅居前  【A股三大指数集体收涨 贵金属涨幅居前】6月2日,A股三...
OpenAI,正式组建机器人事... 人工智能(AI)领域巨头OpenAI发布公告,宣布大力扩张内部机器人事业部,正式全面切入硬件赛道,实...
星火空间完成近亿元Pre-A轮... 据星火空间消息,6月1日,合肥星火空间科技有限公司完成近亿元Pre-A轮融资。本轮融资由云泽资本和轨...
刚刚,宇树IPO闪电过会!王兴... 智东西 作者 | 许丽思 编辑 | 漠影 智东西6月1日报道,刚刚,宇树通过上交所上市委会议审议。 ...
京东工业发起百川计划 携手上游... 京东工业大模型生态发布会6月1日在北京举行,京东工业携手合作伙伴正式开启“百川计划”,从数据、模型、...
强脑科技预计今年机械手销量大涨... IT之家 6 月 2 日消息,据彭博社 2 日(今天)报道,强脑科技预计,随着中国人形机器人产业快速...
一图看懂差距!iPhone 1... 快科技6月2日消息,iPhone 18 Pro不同版本电池容量不同的相关话题冲上社交平台热搜榜,引发...
iPhone 18 Pro 或... 据科技狐,近日,知名爆料人 Sonny Dickson 分享了 iPhone 18 Pro 全套机模...
武契奇:不排除卸任总统后担任总... 塞尔维亚总统武契奇近期密集释放政坛人事与大选相关信号,明确无意在 2027 年总统任期届满后谋求连任...