Не удается получить ответ от возвращенного запроса в Scrapy

Я просто хочу передать URL-адрес другому парсеру. Это не сработало, как показано в документе, поэтому я сократил свой код до минимума, и все равно ничего. Пробовал с yield также

# -*- 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")

person dkx22    schedule 19.07.2015    source источник


Ответы (1)


Предполагая, что ваш отступ действительно правильный, существует 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)

К вашему сведению, если вам интересно, вот как работает промежуточное ПО внутри: nofollow">исходный код.

person alecxe    schedule 19.07.2015