1. 程式人生 > >spider 爬蟲文件基本參數(3)

spider 爬蟲文件基本參數(3)

參數詳解 util 返回 取數 tin 形式 use col __init__

一 代碼

# -*- coding: utf-8 -*-
import scrapy


class ZhihuSpider(scrapy.Spider):
    # 爬蟲名字,名字唯一,允許自定義
    name = zhihu
    # 允許爬取的域名,scrapy每次發起的url爬取數據,先回進行域名檢測,檢測通過就爬取
    allowed_domains = [zhihu.com]
    #發起的起始url地址,scrapy項目啟動自動調用start_request()方法,把start_urls
    # url的作為請求url發起請求,把獲取到的response交給回調函數,回調函數傳遞給parse
# 解析數據 start_urls = [http://zhihu.com/] custom_settings = { # 請求頭 user-agent: None, # 請求來源 # ‘referer‘: ‘https://www.zhihu.com/‘, } def start_requests(self): 重寫start_requests方法 for url in self.start_urls:
#自定義解析方法 yield scrapy.Request(url=url,method=Get,callback=self.define_parse) def parse(self, response): pass def define_parse(self,response): print(response) #輸出狀態碼 self.logger.info(response.status)

二 參數詳解

custom_settings

  • 1 settings 文件中默認請求頭 DEFAULT_REQUEST_HEADERS
  • 2 spider文件中請求頭參數 custom_settings
    •   必須以類變量形式存在
    • 優先級別高與全局

訪問知乎不攜帶請求參數,返回400

技術分享圖片

兩種請求頭的書寫方式如下(左:spisder, 右:settings.py)

技術分享圖片

allowed_domains

  允許爬取的域名,scrapy每次發起的url爬取數據,先回進行域名檢測,檢測通過就爬取

start_urls

  發起的起始url地址,scrapy項目啟動自動調用start_request()方法,把start_urlsurl的作為請求url發起請求,把獲取到的response交給回調函數,回調函數傳遞給parse解析數據

settings

  全局的配置文件

logger

  日誌信息,使用=python自帶的log模塊

start_requests

class MySpider(scrapy.Spider):
    name = myspider

    def start_requests(self):
        #使用FormRequest提交數據
        return [scrapy.FormRequest("http://www.example.com/login",
                                   formdata={‘user‘: ‘john‘, ‘pass‘: ‘secret‘},
                                   callback=self.logged_in)]

    def logged_in(self, response):
        pass    

post 請求

技術分享圖片

parse(response)

  參數:responseResponse) - 對解析的響應

指定解析函數,可以擴展多個函數,多層次的解析方法.

技術分享圖片

spider 啟動參數配置

import scrapy

class MySpider(scrapy.Spider):
    name = myspider

    def __init__(self, category=None, *args, **kwargs):
        super(MySpider, self).__init__(*args, **kwargs)
        self.start_urls = [http://www.example.com/categories/%s % category]

命令行中調用

scrapy crawl myspider -a category=electronics

spider 爬蟲文件基本參數(3)