使用scrapy抓取股票代码

news/2024/7/19 10:09:13 标签: python, 爬虫

文章来源:mypython.me

源码地址:github.com/geeeeeeeek/…

抓取工具:scrapy

scrapy介绍

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

安装scrapy

pip install Scrapy
复制代码

抓取步骤

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

首先使用scrapy创建一个项目

scrapy startproject tutorial
复制代码
  1. 选择一个网站

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

  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_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
…
复制代码

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

hq.sinajs.cn

例如

hq.sinajs.cn/list=s_sh60…

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

var hq_str_s_sh600756="浪潮软件,19.790,1.140,6.11,365843,70869";
复制代码

http://www.niftyadmin.cn/n/1039713.html

相关文章

DELL R710 服务器重装系统

为什么80%的码农都做不了架构师?>>> DELL R710 服务器重装系统 从光盘启动,死活都是失败了。没搞明白什么原因。最后从U盘启动成功装了系统。下面简单的说一下U盘的处理步骤。装系统就不说了,引导进去之后,都是图形操…

关于OnTouchListener用法

关于OnTouchListener用法 2014年12月12日 20:55:03 tan313 阅读数:3158 常常会设置监听器,但是OnTouchListener类处理监听器类TouchListener时总是用错,借此记录下它的常用语法: package com.example.test; import android.app.Activity;…

IBM MessageBroker笔记系列

http://user.qzone.qq.com/2426419128/blog/1327286648

阿里云MWC 2019发布7款产品:Blink每秒可完成17亿次计算

在巴塞罗那举行的MWC 2019上,国内厂商不仅展示了目前的5G发展进程,也带来了一些云计算方面的进展。据报道,阿里云面向全球发布了7款产品,涵盖无服务器计算、高性能存储、全球网络、企业级数据库、大数据计算等主要云产品&#xff…

关于 WebSphere 的应用部署

关于 WebSphere 的应用部署作者: Walter Zhou 日期 : 2007-6-15 服务器IP : http://192.168.1.240/ 操作系统 : FEDORA LINUX 6。0 WEB应用 : Apache WebSphere DB2 下面是终端登陆步骤: 一. 管理W…

使用Kotlin开发第一个Android应用

使用Kotlin开发第一个Android应用 直奔主题 第一步:为AndroidStudio安装Kotlin插件 在线安装步骤:File—>Settings—>Plugins—>Install JetBrains plugin…出现以下界面,选中Kotlin 点击右边的Install(因为我的已经安…

android SlidingTabLayout实现ViewPager页卡滑动效果

android SlidingTabLayout实现ViewPager页卡滑动效果 先来张效果图(能够滑动切换页卡) 主页面布局文件 remind_auction_new_list.xml : <RelativeLayoutstyle"style/Rosemary.Plane"xmlns:android"http://schemas.android.com/apk/res/android"><…

【软工】第 零 次作业

前言 1.这个作业属于哪个课程&#xff1f; 2019春季计算机学院软件工程 2.这个作业的要求在哪里&#xff1f; 第0次软工作业要求 3.我在这个课程的目标是&#xff1f; 了解并学习软件工程的教学内容&#xff0c;完成课程任务&#xff0c;培养工程化设计和开发软件的能力。提升在…