2015-07-19 100 views
2

我只想將url傳遞給另一個分析器。它沒有像文檔中顯示的那樣工作,所以我已經將我的代碼減少到了最低限度,但仍然沒有任何結果。與產量也無法從Scrapy中返回的請求獲得響應

# -*- coding: utf-8 -*- 
import scrapy 
import cfscrape 
from scrapy.spiders import Spider 
import json 

rez=[] 

class LinkbaseSpider(Spider): 

name = "mine" 
allowed_domains = ["127.0.0.1"] 
start_urls = (
    'file://127.0.0.1/home/link.html', 
) 

def parse(self, response): 

    request= scrapy.Request("http://www.google.com",callback=self.parse2) 
    return request 


def parse2(self,response): 
    self.logger.info("Visited %s", response.url) 
    print("00000000000000000000000") 

回答

2

試圖假設你的縮進實際上是正確的,有一個OffSiteMiddleware可以過濾基於allowed_domains您的要求。在這種情況下,不允許google.com,因爲allowed_domains設置爲["127.0.0.1"]

您可以通過設置dont_filter=True實例化一個Request時變通辦法:

def parse(self, response): 
    return scrapy.Request("http://www.google.com", 
          callback=self.parse2, 
          dont_filter=True) 

僅供參考,如果你有興趣,這裏是中間件的內部工作原理:source code