Я получил TypeError при использовании Scrapy View - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь использовать scrapy view https://www.example.com (не настоящая ссылка, поскольку мне не разрешено раскрывать ее по моей работе. Извините.) Для отладки ссылки, но затем я получил эту ошибку.

2018-11-01 20:49:29 [twisted] CRITICAL: Unhandled error in Deferred:

2018-11-01 20:49:29 [twisted] CRITICAL:
Traceback (most recent call last):
  File "d:\kerja\hit\python projects\my_project\my_project-env\lib\site-packages\twisted\internet\defer.py", line 1386, in _inlineCallbacks
    result = g.send(result)
  File "d:\kerja\hit\python projects\my_project\my_project-env\lib\site-packages\scrapy\crawler.py", line 98, in crawl
    six.reraise(*exc_info)
  File "d:\kerja\hit\python projects\my_project\my_project-env\lib\site-packages\scrapy\crawler.py", line 79, in crawl
    self.spider = self._create_spider(*args, **kwargs)
  File "d:\kerja\hit\python projects\my_project\my_project-env\lib\site-packages\scrapy\crawler.py", line 102, in _create_spider
    return self.spidercls.from_crawler(self, *args, **kwargs)
  File "d:\kerja\hit\python projects\centurica\centurica-env\lib\site-packages\scrapy\spiders\__init__.py", line 51, in from_crawler
    spider = cls(*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'start_requests'
'page' is not recognized as an internal or external command,
operable program or batch file.

Как не получить эту ошибку?

UPDATE:

Я получаю эту ошибку на одном из моих проектов Scrapy, но не получаю никаких ошибок при использовании моего другого проекта Scrapy. Кажется, проблема в пауке.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

1.

Как упомянуло Еленой в своем ответе , образец команды, который вы дали, не был указан. Вам нужно будет правильно обработать символ & (путем цитирования команды или хотя бы экранирования этого символа), чтобы передать правильный URL-адрес Scrapy в качестве аргумента.

Хотя это и нужно решить, но я не думаю, что это причина того, что TypeError у вас сейчас есть.

2.

При обработке таких команд, как scrapy fetch и scrapy view, Scrapy потребуется инициализировать экземпляр scrapy.Spider для задачи.

Во время этого процесса Scrapy будет искать файл scrapy.cfg по текущему пути и:

  • Случай A: если такой файл существует, Scrapy распознает проект по текущему рабочему пути и попытается загрузить существующий класс scrapy.Spider в.
  • Случай B: если нет, то есть нет доступного проекта Scrapy, Scrapy просто инициализирует экземпляр scrapy.Spider по умолчанию.

Согласно журналу, которым вы поделились, это случай А, который вы имеете.

Более того, при обработке команды scrapy fetch Scrapy попытается переопределить атрибут start_requests с помощью аргументов паука (связанный код здесь ). И согласно журналу, которым вы поделились, ваш паук не принимает такой аргумент.

Таким образом, вы можете попробовать любой из следующих подходов:

  • Предложение A: измените рабочий каталог на другое, где нет проекта Scrapy (например, cd /tmp/). Затем повторите ту же команду scrapy fetch.
  • Предложение B: Правильно обработайте входные аргументы (пример ниже), затем повторите ту же команду scrapy fetch.

В любом случае вам может потребоваться исправить команду scrapy fetch, как указано в # 1.

3.

Пример кода предложения B выше:

import scrapy


class TestSpider(scrapy.Spider):
    name = 'test'

    def __init__(self, argument_foo, argument_bar, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # handle your argument "foo" and "bar" here
        # e.g. self.xxx = int(argument_foo)
0 голосов
/ 01 ноября 2018

Попробуйте использовать цитаты? Нравится scrapy view "https://empireflippers.com/wp-admin/admin-ajax.php?action=ef_listings_paginated&page=1"

...