我正在尝试使用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.
如何避免出现该错误?
更新:
我在一个Scrapy项目中遇到该错误,但在使用其他Scrapy项目时却没有任何错误。蜘蛛看来这是个问题。
答案 0 :(得分:2)
1。
如Elena in his/her answer所述,您给出的示例命令没有被引用。您需要正确处理&
字符(通过引用命令或至少转义该字符),以将正确的URL作为参数传递给Scrapy。
虽然这是需要解决的问题,但我认为这不是您目前拥有TypeError
的原因。
2。
在处理scrapy fetch
和scrapy view
之类的命令时,Scrapy需要为该任务初始化一个scrapy.Spider
实例。
在此过程中,Scrapy会在当前路径中查找scrapy.cfg
文件,并且:
scrapy.Spider
类。scrapy.Spider
实例。根据您共享的日志,您的情况是A。
此外,在处理scrapy fetch
命令时,Scrapy会尝试通过蜘蛛参数(相关代码here)来覆盖start_requests
属性。并且根据您共享的日志,您的蜘蛛程序不接受此类参数。
因此,您可以尝试以下任何一种方法:
cd /tmp/
)。然后重试相同的scrapy fetch
命令。scrapy fetch
命令。无论哪种情况,您都可能需要按照#1中的说明修复scrapy fetch
命令。
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)
答案 1 :(得分:1)
尝试使用引号吗?像scrapy view "https://empireflippers.com/wp-admin/admin-ajax.php?action=ef_listings_paginated&page=1"