爬取股票scrapy

步骤1.建立工程和Spider

scrapy startproject BaiduStocks
cd BaiduStocks scrapy genspider stocks baidu.com

步骤2.编写爬虫Spider

配置stocks.py文件

修改返回页面的处理

修改对新增url爬取请求的处理

import scrapy
import re
class StocksSpider(scrapy.Spider):
    name = "stocks"
    start_urls = [‘http://quote.eastmoney.com/stocklist.html‘]
    def parse(self,response):
            for href in response.css(‘a::aattr(href)‘).extract():
                try:
                    stock = re.findall(r"[s][hz]\d{6}",href)[0]
                    url = ‘https://gupiao.bai.com/stock/‘ + stock +‘.html‘
                    yield scrapy.Request(url,callback=self.parse_stock)
                except:
                    continue
    def parse_stock(self.response):
        infoDict = {}
        stockInfo = respomse.css(‘.stock-bets‘)
        name = stockInfo.css(‘.bets-name‘).extact()[0]
        keyList = stockInfo.css(‘dt‘).extract()
        valueList = stockInfo.css(‘dd‘).extract()
        for i in range(len(keyList)):
            key = re.findall(r‘>.*</dt>‘,keyList[i])[0][1:-5]
            try:
                val = re.findall(r‘\d+\.?.*‘,valueList[i])[0][0:-5]
            except:
                val = ‘--‘
            infoDict[key]=val
        infoDict.update(
        {‘股票名称‘}:re.findall(‘\s.*\(‘,name)[0].split()[0]+        re.findall(‘\>.*\<‘,name)[0][1:-i]})     yield inofDict            

步骤3.编写Piplines.py文件

定义对爬取项(Scraped Item)的处理类

# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don‘t forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html

class BaidustocksPipeline(object):
    def process_item(self, item, spider):
        return item
class BaidustocksinfoPipeline(object):
    def open_spider(self,spider):
        self.f = open(‘BaiduStockInfo.txt‘,‘w‘)
    def close_spider(self.spider):
        self.f.close()
    def process_item(self.item.spider):
        try:
            line = str(dict(item)) + ‘\n‘
            self.f.write(line)
        except:
            pass
        return item

配置ITEM_PIPLINES选项

修改setting.py

ITEM_PIPELINES = {
    ‘BaiduStocks.pipelines.BaidustocksInfoPipeline‘: 300,

原文地址:https://www.cnblogs.com/HomeG/p/10529500.html

时间: 2024-10-21 07:30:30

爬取股票scrapy的相关文章

python网络爬虫之使用scrapy自动爬取多个网页

前面介绍的scrapy爬虫只能爬取单个网页.如果我们想爬取多个网页.比如网上的小说该如何如何操作呢.比如下面的这样的结构.是小说的第一篇.可以点击返回目录还是下一页 对应的网页代码: 我们再看进入后面章节的网页,可以看到增加了上一页 对应的网页代码: 通过对比上面的网页代码可以看到. 上一页,目录,下一页的网页代码都在<div>下的<a>元素的href里面.不同的是第一章只有2个<a>元素,从二章开始就有3个<a>元素.因此我们可以通过<div>

利用 Scrapy 爬取知乎用户信息

思路:通过获取知乎某个大V的关注列表和被关注列表,查看该大V和其关注用户和被关注用户的详细信息,然后通过层层递归调用,实现获取关注用户和被关注用户的关注列表和被关注列表,最终实现获取大量用户信息. 一.新建一个scrapy项目 scrapy startproject zhihuuser 移动到新建目录下: cd zhihuuser 新建spider项目: scrapy genspider zhihu 二.这里以爬取知乎大V轮子哥的用户信息来实现爬取知乎大量用户信息. a) 定义 spdier.p

爬虫练习五:多进程爬取股市通股票数据

在上网查阅一些python爬虫文章时,看见有人分享了爬取股票的交易数据,不过实现得比较简单.这里就做个小练习,从百度股票批量爬取各股票的交易信息. 文章出处为:Python 爬虫实战(2):股票数据定向爬虫. 爬取数据:每个股票的日度交易数据 爬取来源:百度股市通 python版本:3.6.6 时间:20190115 1. 找到日度数据url 以中化国际的日K数据为例,通过分析网页,我们可以发现,日度交易数据是通过接口的形式获取的. 获取的url为:https://gupiao.baidu.co

python爬虫---scrapy框架爬取图片,scrapy手动发送请求,发送post请求,提升爬取效率,请求传参(meta),五大核心组件,中间件

# settings 配置 UA USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36' 一丶scrapy的图片数据爬取(流数据的爬取) ? scrapy中封装好了一个管道类(ImagesPipeline),基于该管道类可以实现图片资源的请求和持久化存储 编码流程: 爬虫文件中解析出图片的地址 将

爬虫07 /scrapy图片爬取、中间件、selenium在scrapy中的应用、CrawlSpider、分布式、增量式

目录 爬虫07 /scrapy图片爬取.中间件.selenium在scrapy中的应用.CrawlSpider.分布式.增量式 1. scrapy图片的爬取/基于管道类实现 2. 中间件的使用 3. selenium在scrapy中的应用 4. CrawlSpider 5. 分布式 5. 增量式 爬虫07 /scrapy图片爬取.中间件.selenium在scrapy中的应用.CrawlSpider.分布式.增量式 1. scrapy图片的爬取/基于管道类实现 爬取流程: 爬虫类中将解析到的图片

爬虫 --- 07. 全站爬取, post请求,cookie, 传参,中间件,selenium

一.全站数据的爬取 - yield scrapy.Request(url,callback):callback回调一个函数用于数据解析 # 爬取阳光热线前五页数据 import scrapy from sunLinePro.items import SunlineproItem class SunSpider(scrapy.Spider): name = 'sun' # allowed_domains = ['www.xxx.com'] start_urls = ['http://wz.sun0

爬取沪深a股数据

首先从东方财富网获取股票代码 再从网易财经下载股票历史数据 import requests import random from bs4 import BeautifulSoup as bs import time import redis import re import json def get_stock_names(): """ 通过东方财富网上爬取股票的名称代码,并存入redis数据库和本地txt文档 """ rds = redis.f

小白学 Python 爬虫(25):爬取股票信息

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

基于scrapy实现爬取投资社区雪球网的来自用户的讨论数据(一)

这个项目是一个基于 Python scrapy 的爬虫项目,截至到目前(2015年05月24日),初衷是希望能够爬取 www.xueqiu.com 中的某个给定的股票的页面下 -- 比如'融创中国'的 -- 所有的来自用户的讨论(至于后续的功能再说,肯定是希望用更多的数据然后基于文本挖掘和情感分析来预测股价). 以下是目前的调研结论: 以'融创中国'这只股票为例,股票代号是01918,所以它的页面是 http://xueqiu.com/s/01918 ,这个页面中展示了来自用户的所有关于'融创中