【发布时间】:2013-12-27 06:21:30
【问题描述】:
为幻想团队创建刮板。寻找一种将玩家名称列表作为参数传递的方法,然后为 player_list 中的每个 player_name 运行解析代码。
我目前有这样的东西
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',... etc]] 为什么 python 不将 player_name 分配给每个 'name' (例如 'abc def '和'ghi jkl')?谁能给我解释一下这个逻辑,之后我可能会明白正确的做法!
【问题讨论】:
-
刚刚试了一下,在Ubuntu上没有报错,scrapy版本0.18.4,你运行的是什么版本?
-
我意识到我通过命令行传递了错误的参数。请参阅下面的@kev 答案!但现在我遇到了一个新问题
标签: python web-scraping scrapy