为幻想团队创建一个刮板。寻找一种方法来传递玩家名称列表作为参数,然后对于player_list中的每个player_name运行解析代码。Scrapy:如何通过命令提示符将参数列表传递给蜘蛛?
我现在有这样的事情
class statsspider(BaseSpider):
name = 'statsspider'
def __init__ (self, domain=None, player_list=""):
self.allowed_domains = ['sports.yahoo.com']
self.start_urls = [
'http://sports.yahoo.com/nba/players',
]
self.player_list= "%s" % player_list
def parse(self, response):
example code
yield request
我假设输入的参数列表是相同的通过命令行只是一个参数,因此我进入这样的事情:
scrapy crawl statsspider -a player_list=['xyz','abc']
问题2!
通过输入一个逗号分隔的参数列表,像这样
scrapy crawl statsspider -a player_list="abc def,ghi jkl"
我现在想通过每一个“名称”解决的第一个问题(即“ABC DEF”)找到的第一个初步的姓氏(在这种情况下是'd')。
我使用的代码
array = []
for player_name in self.player_list:
array.append(player_name)
print array
而我最终的结果[ “'”, 'A', 'B', 'C',...等]为什么不蟒将player_name分配给每个'名字'(例如'abc def'和'ghi jkl')?有人可以向我解释这个逻辑吗,我可能会理解事后做正确的做法!
只是给它一个尝试,它并没有给Ubuntu上的错误,scrapy版本0.18.4,你运行的是什么版本? –
我意识到我通过命令行错误地传递了参数。请参阅下面的@kev答案!但现在我坚持一个新问题 –