在展开之前,将我的查询总结为几个要点:
现在开始讲黄铜钉。
我想从橄榄球数据库上刮点东西。代码片段如下:
<TeamData Possession="0.50" Score="40" Side="Home" TeamRef="t1550" Territory="0">
<Stat Type="restart_opp_player">0</Stat>
<Stat Type="kick_oppn_collection">0</Stat>
<Stat Type="kicks_from_hand">0</Stat>
<Stat Type="penalty_conceded_killing_ruck">0</Stat>
...这段代码继续了大约140行代码,这样就可以显式地定义每个属性了。
与其逐个提取每个属性,我希望能够定义一个空类,然后用各种属性填充它。这在shell中非常容易实现。
class RugbyItem(params):
def __init__(self, params)
selc.__dict__.update(params)
home_attribute_names = response.xpath('//TeamData[@Side="Home"]/Stat/@Type').extract()
home_attribute_stats = response.xpath('//TeamData[@Side="Home"]/Stat/text()').extract()
concat = {k: v for (k, v) in (zip(home_names, home_stats))}
home_data = RugbyItem(concat)基于以上所述,有人能帮我弄清楚我应该如何构造项目文件吗?
class RugbyItem(scrapy.Item):
??? = scrapy.Field()还有蜘蛛侠班。
class MySpider(BaseSpider):
name = "rugbyspider"
allowed_domains = ["opta.net"]
start_urls = ["http://omo.akamai.opta.net/?feed_type=ruf9&game_id=113013&user=OWV3&psw=trDd59TW"]
def parse(self, response):
home_attribute_names = response.xpath('//TeamData[@Side="Home"]/Stat/@Type').extract()
home_attribute_stats = response.xpath('//TeamData[@Side="Home"]/Stat/text()').extract()
concat = {k: v for (k, v) in (zip(home_names, home_stats))}
home_data = RugbyItem(concat)
yield home_data谢谢你的帮助!
发布于 2016-04-26 22:32:36
您不必生成一个scrapy.Item实例,也可以生成一个dict,它不会受限于所需的限制。
https://stackoverflow.com/questions/36876960
复制相似问题