构建一个 webscraper 来抓取这个页面http://espn.go.com/nba/teams以便使用 scrapy python 库将所有团队名称及其对应的部门填充到数据库中。我正在尝试编写我的解析函数,但是我仍然不完全了解如何提取相应的部门名称以匹配每个团队。
[1] https://www.dropbox.com/s/jv1n49rg4p6p2yh/2014-12-29%2014.08.07-2.jpg?dl=0
def parse(self,response):
items = []
mex = "//div[@class='span-6']/div[@class='span-4']/div/div/div/div[2]/ul/li"
i=0
for sel in response.xpath(mex):
item = TeamStats()
item['team'] = sel.xpath(mex + "/div/h5/a/text()")[i]
item['division'] = sel.xpath("//div[@class='span-6']/div[@class='span-4']/div/div/div/div[1]/h4")
items.append(item)
i=i+1
return items
我的解析函数能够返回一个团队列表和一个列出所有部门的相应部门列表。现在我并不是真的如何指定确切的部门,因为在我看来,我必须从所选的团队名称导航(由 item['team'] = sel.xpath(mex + "/div/h5 /a/text()")[i] )通过使用前面的子关系(将包括一个我一直在关注的网站作为教程但我没有 10 个声誉点)来获取 DOM正确的划分,但我不知道如何写...
如果我在这方面走错了路,请告诉我,因为我不是 XPath 专家。实际上,我什至不确定是否需要一个计数器,就好像我删除了 [i] 然后我只得到了 30 个包含所有 30 个团队的列表。