scrapy原码解读---Spider

本文深入剖析了Scrapy框架中的Spider组件,详述了Spider的作用和功能,包括生成Request、解析Response、使用Selectors提取数据等。同时,文章对Spider的源码进行了详细解读,涵盖name、allowed_domains、start_urls等重要属性,以及start_requests()、parse()等关键方法的用法和重写策略。
摘要由CSDN通过智能技术生成
一、spider的作用和功能
  1. 根据url生成Request并指定回调方法处理Response。第一个Request是通过start_requests()产生的;
  2. 在回调方法中,解析页面的Response,返回Item实例或者Request实例,或者这两种实例的可迭代对象;
  3. 在回调方法中,通常使用Selectors(也可以使用BeautifulSoup,lxml等)来提取数据;
  4. 最后spider会return item给Pipline完成数据的清洗,持久化等操作。
二、源码解析

 类scrapy.spiders.Spider 是最简单的spider,所有的spider包括自己定义的和scrapy提供的都会继承它。它只是提供最基本的特性,也是我最常用的spider类。
源码:

"""
Base class for Scrapy spiders

See documentation in docs/topics/spiders.rst
"""
import logging
import warnings

from scrapy import signals
from scrapy.http import Request
from scrapy.utils.trackref import object_ref
from scrapy.utils.url import url_is_from_spider
from scrapy.utils.deprecate import create_deprecated_class
from scrapy.exceptions import ScrapyDeprecationWarning
from scrapy.utils.deprecate import method_is_overridden


class Spider(object_ref):
    """
    Base class for scrapy spiders. All spiders must inherit from this
    class.
    """

    name = None
    custom_settings = None

    def __init__(self, name=None, **kwargs):
        if name is not None:
            self.name = name
        elif not getattr(self, 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值