3、scrapy基本概念介绍

2017-06-30  本文已影响23人  ifeelok0319

本篇介绍scrapy的命令行工具、重要组件和重要对象。

scrapy 命令行工具

scrapy的重要组件

Spider

基本介绍

Spider是一个类,它定义了怎样爬取一个网站,包括怎样跟踪链接、怎样提取数据。

执行流程:

zaobao Spider

这里写图片描述
基类介绍(scrapy.Spider)
子类介绍
CrawlerSpider

示例

这里写图片描述
XMLFeedSpider
CSVFeedSpider
SitemapSpider

Selector

scrapy默认使用Selector作为网页解析工具

实例化
这里写图片描述
常用方法
  1. xpath
  2. css
  3. re
  4. extract
  5. extract_first

Item

示例

import scrapy


class Product(scrapy.Item):
    name = scrapy.Field()
    price = scrapy.Field()
    stock = scrapy.Field()

Item Pipeline

作用
  1. 清洗HTML数据
  2. 验证抓取到的数据(检查是否有数据)
  3. 检查是否重复(然后丢弃重复数据)
  4. 存储数据到数据库中
示例
from scrapy.exceptions import DropItem


class PricePipeline(object):
    vat_factor = 1.15

    def process_item(self, item, spider):
        if item['price']:
            if item['price_excludes_vat']:
                item['price'] = item['price'] * self.vat_factor
                return item
        else:
            raise DropItem("Missing price in %s" % item)
激活pipeline

settings.py里面设置

ITEM_PIPELINES = {
    'myproject.pipelines.PricePipeline': 300
}

优先级0-1000,越小越优先

Feed exports

存储抓取到的数据

scrapy的重要对象

Request

示例

这里写图片描述

class scrapy.http.FormRequest(url[, formdata...])

示例

这里写图片描述

Response

  1. scrapy.http.Response的初始化参数
  1. 其他成员
  1. 子类
上一篇 下一篇

猜你喜欢

热点阅读