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)

舉例python

若是不寫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對象發送出去,發送必須以迭代器的形式輸出dom

  • parse(self,response):這是默認的回調函數scrapy

  • log(self, message, level=logging.DEBUG, **kw): 定義日誌級別
  • close(self,reason):關閉爬蟲程序執行ide

相關文章
相關標籤/搜索