繁体   English   中英

Scrapy:如何通过命令提示符将参数列表传递给蜘蛛?

[英]Scrapy : How to pass list of arguments through command prompt to spider?

为幻想团队创建一个刮刀。 寻找一种方法将玩家名称列表作为参数传递,然后为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',......等]为什么python没有为每个'name'分配player_name(例如'abc def'和' ghi jkl')? 有人可以向我解释这个逻辑,我可能会理解事后做到这一点的正确方法!

Shell参数是基于字符串的。 您需要在代码中解析arg。

命令行:

scrapy crawl statsspider -a player_list=xyz,abc

python代码:

self.player_list = player_list.split(',')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM