как использовать process_request в scrapy - PullRequest
0 голосов
/ 21 марта 2020
import scrapy


class TestSpider(scrapy.Spider):
    name = 'test'
    #allowed_domains = ['test.com']
    start_urls = ['http://httpbin.org/anything']

    def parse(self, response):
        print(response.text)

Это тестовый паук, я пытаюсь отредактировать запрос в промежуточном программном обеспечении загрузчика.

class ScrapertestDownloaderMiddleware(object):
    # Not all methods need to be defined. If a method is not defined,
    # scrapy acts as if the downloader middleware does not modify the
    # passed objects.

    @classmethod
    def from_crawler(cls, crawler):
        # This method is used by Scrapy to create your spiders.
        s = cls()
        crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)
        return s

    def process_request(self, request, spider):
        # Called for each request that goes through the downloader
        # middleware.
        #request.url = "https://www.example.com"
        #request = request.replace(headers={'User-Agent':'dsadasdsa'})
        request.replace(headers={'User-Agent':'dsadasdsa'})
        #request.replace(url="https://www.example.com")
        return request

Я пробовал много способов запустить его, но он не работал. если я возвращаю request паук застревает (CTRL+C не работает), если я возвращаю None, ни одно из изменений не вступает в силу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...