spider 爬蟲文件基本參數(3)
阿新 • • 發佈:2019-04-26
參數詳解 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)
參數:response(Response
) - 對解析的響應
指定解析函數,可以擴展多個函數,多層次的解析方法.
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)