• Scrapy框架-爬虫程序相关属性和方法汇总


    一.爬虫项目类相关属性

    • name:爬虫任务的名称
    • allowed_domains:允许访问的网站
    • start_urls: 如果没有指定url,就从该列表中读取url来生成第一个请求
    • custom_settings:值为一个字典,定义一些配置信息,在运行爬虫程序时,这些配置会覆盖项目级别的配置
      所以custom_settings必须被定义成一个类属性,由于settings会在类实例化前被加载
    • settings:通过self.settings['配置项的名字']可以访问settings.py中的配置,如果自己定义了custom_settings还是以自己的为准
    • logger:日志名默认为spider的名字
    • crawler:该属性必须被定义到类方法from_crawler中,crawler可以直接crawler.settings.get('setting文件中的名称')

    二.爬虫项目类相关方法

    • from_crawler(crawler, *args, **kwargs):这个就是优先于__init__执行函数举例代码可以如下
    #一般配置数据库的属性时候稍微用影响
    #简单些下
    @classmethod
    def from_crawler(cls,crawler):
        HOST = crawler.settings.get('HOST') #这里面的属性都是在settings中设置的名称
        PORT = crawler.settings.get('PORT')
        USER = crawler.settings.get('USER')
        PWD = crawler.settings.get('PWD')
        DB = crawler.settings.get('DB')
        TABLE = crawler.settings.get('TABLE')
        return cls(HOST,PORT,USER,PWD,DB,TABLE)
    def __init__(self,HOST,PORT,USER,PWD,DB,TABLE):
        self.HOST = HOST
        self.PORT = PORT
        self.USER = USER
        self.PWD = PWD
        self.DB = DB
        self.TABLE = TABLE
    #看一眼就知道了吧
    
    • start_requests(self):该方法用来发起第一个Requests请求,且必须返回一个可迭代的对象。它在爬虫程序打开时就被Scrapy调用,Scrapy只调用它一次。
      默认从start_urls里取出每个url来生成Request(url, dont_filter=True)

    举例

    如果不写start_requests方法:他会把start_urls的两个网址都发送过去

    import scrapy
    class BaiduSpider(scrapy.Spider):
        name = 'test'
        allowed_domains = ['http://httpbin.org/get']
        start_urls = ['http://httpbin.org/get','http://httpbin.org/get']
        
        def parse(self, response):
            print('接受一次')
            
    

    如果写start_requests方法:他会把我们指定的Request对象发送出去,发送必须以迭代器的形式输出

    • parse(self,response):这是默认的回调函数

    • log(self, message, level=logging.DEBUG, **kw): 定义日志级别

    • close(self,reason):关闭爬虫程序执行

  • 相关阅读:
    cnn softmax regression bp求导
    使用kd-tree加速k-means
    KDTree详解及java实现
    加入商品分类信息,考虑用户所处阶段的 图模型 推荐算法 Rws(random walk with stage)
    用户标签
    LDA(latent dirichlet allocation)
    对物品进行反馈 代码
    1.虚拟机中安装ubuntu
    4.动态HTML处理和机器图像识别
    3.非结构化数据与结构化数据提取
  • 原文地址:https://www.cnblogs.com/pythonywy/p/11727332.html
Copyright © 2020-2023  润新知