Ich weiß, wie Argumente übergeben werden, wenn Sie einen Scrapy Spider von der Befehlszeile aus ausführen. Jedoch habe ich Probleme, wenn ich versuche, es programmatisch aus einem Skript mit scrapys cmdline.execute() auszuführen.Scrapy: Argumente an cmdline.execute() übergeben
Die Argumente, die ich brauchen, sind Listen zu übergeben, die ich zuvor als Strings formatiert, wie folgt aus:
numbers = "one,two,three,four,five"
colors = "red,blue,black,yellow,pink"
cmdline.execute('scrapy crawl myspider -a arg1='+numbers+' -a arg2='+colors)
und die Spinne ist ...
class MySpider(Spider):
name = "myS"
def __init__(self, arg1, arg2):
super(MySpider, self).__init__()
#Rest of the code
Allerdings, wenn ich es laufen Ich erhalte diesen Fehler:
Traceback (most recent call last):
File "C:/Users/ME/projects/script.py", line 207, in run
cmdline.execute("scrapy crawl myS -a arg1="+numbers+" -a data="+colors)
File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 123, in execute
cmdname = _pop_command_name(argv)
File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 57, in _pop_command_name
del argv[i]
TypeError: 'str' object doesn't support item deletion
Irgendwelche Ideen?
Betriebssystem: Windows7; Python-Version: 2.7.8
Es hat funktioniert! Danke für die schnelle Antwort. – pylund