Scrapy: ошибка использования промежуточного программного обеспечения прокси - PullRequest
0 голосов
/ 10 сентября 2018

Я новичок в области scrapy. Я хочу использовать промежуточное ПО для прокси. Но мои сообщения отладки показывают

2018-09-10 21:15:57 [scrapy.core.engine] INFO: Spider opened
2018-09-10 21:15:57 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-09-10 21:15:57 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2018-09-10 21:16:57 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-09-10 21:17:57 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-09-10 21:18:05 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://www.zhipin.com/robots.txt> (failed 1 times): TCP connection timed out: 110: Connection timed out.
2018-09-10 21:18:57 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)

Он будет всегда сканировать 0 страниц и повторять попытки. Мои прокси-серверы бесплатны и авторизация не требуется. Но я пытаюсь удалить промежуточное ПО прокси-сервера и использую

yield scrapy.Request(url='https://www.example.com/', callback=self.parse_first, meta=my_proxy)

Все нормально. Кажется, проблема с моими настройками.

Настройки

DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware':135,
'ip_proxy.middlewares.CustomProxyMiddleware':125
}

CustomProxyMiddleware

class CustomProxyMiddleware(object):
def process_request(self, request, spider):
    request.meta['proxy'] = my_proxy

Паук

class ipSpider(scrapy.Spider):
  name = "test"

  def start_requests(self):
      yield scrapy.Request(url="https://www.example.com",callback=self.parse_first)

1 Ответ

0 голосов
/ 10 сентября 2018

Похоже, вы не изменили настройку по умолчанию ROBOTXT_OBEY Установите ROBOTXT_OBEY = False и попробуйте. Я буду работать.

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