为幻想团队创建一个刮刀.寻找一种方法将玩家名称列表作为参数传递,然后为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
Run Code Online (Sandbox Code Playgroud)
我假设通过命令行输入一个参数列表与一个参数相同,所以我输入如下内容:
scrapy crawl statsspider -a player_list=['xyz','abc']
Run Code Online (Sandbox Code Playgroud)
问题2!
通过输入逗号分隔的参数列表解决了第一个问题
scrapy crawl statsspider -a player_list="abc def,ghi jkl"
Run Code Online (Sandbox Code Playgroud)
我现在想通过每个"名字"(即'abc def')找到他们姓氏的第一个首字母(在这种情况下是'd').
我用的是代码
array = []
for player_name in self.player_list:
array.append(player_name)
print array
Run Code Online (Sandbox Code Playgroud)
我最终得到了结果[["'",'a','b','c',......等]为什么python没有为每个'name'分配player_name(例如'abc def'和' ghi jkl')?有人可以向我解释这个逻辑,我可能会理解事后做到这一点的正确方法!
我写了一个蜘蛛,它会抓取一个网页并填充一个项目中的字段.该项目包含以下字段
class exampleitem():
ex1 = Field()
ex2 = Field()
ex3 = Field()
... and so forth
Run Code Online (Sandbox Code Playgroud)
当我刮擦并导出到xml文件时,字段的顺序变得混乱并返回类似这样的内容
<items>
<item>
<ex2> <value> xyz </value> </ex2>
<ex3> <value> abc </value> </ex3>
<ex1> <value> ghi </value> </ex1>
</item>
... so forth
</items>
Run Code Online (Sandbox Code Playgroud)
我想这样做,以便xml的格式按照它在我的item.py文件的Fields()中编写的确切顺序.
我一直在做研究过去一小时左右,我知道它与我的管道和使用xmlitemexporter有关,但我根本不知道如何定制我的管道甚至从哪里开始.
简而言之,我在行话中迷失方向,如果有人能指出我的方向,或者给我一个简短的示例代码,我将如何开始格式化我的剪切项目,我会很感激!
非常感谢