Scrapy не использует параметры из settings.py - PullRequest
0 голосов
/ 27 сентября 2019

Я новичок в области терапии.Мой паук scrapy заблокирован ip сайтом, который я хочу проанализировать.Я получаю 520 ошибку.Если я инициализирую header / user_agent прямо в spider, а также устанавливаю прокси в метапараметре scrapy.Request, я могу отправить первый запрос и получить код 200, но затем он застрял на 403 Код состояния HTTP не обрабатывается или не разрешается,Поэтому я отредактировал middlewares.py, добавил CustomProxyMiddleware.В settings.py я установил USER_AGENT и добавил DOWNLOADER_MIDDLEWARES с CustomProxyMiddleware, но когда я запускаю spider, он не использует прокси, и я предполагаю, что user_agent также по умолчанию, кроме моего.

middlewares.py

class CustomProxyMiddleware(object):
    def process_request(self, request, spider):
        request.meta['proxy'] = "http://103.35.64.12:3128"
        return None

settings.py

BOT_NAME = 'SGinfotrackker'

SPIDER_MODULES = ['SGinfotrackker.spiders']
NEWSPIDER_MODULE = 'SGinfotrackker.spiders'


# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'

# Obey robots.txt rules
ROBOTSTXT_OBEY = True


DOWNLOAD_DELAY = 15

DOWNLOADER_MIDDLEWARES = {'SGinfotrackker.middlewares.CustomProxyMiddleware': 350,
    'SGinfotrackker.middlewares.SginfotrackkerDownloaderMiddleware': None,
}

во-первых, я получил

Игнорирование ответа <520 <a href="http://www.some_url.com" rel="nofollow noreferrer">http://www.some_url.com>: Код состояния HTTP не обрабатывается или не разрешен

Я тогда получаю

403 Код состояния HTTP не обрабатывается или не разрешается

...