このページhttp://espn.go.com/nba/teamsをスクレイピングするための webscraper を構築して、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] ) 上記の子リレーションを使用して DOM をアップします (チュートリアルとしてフォローしている Web サイトを含める予定でしたが、評価ポイントは 10 ではありません)。正しい区分ですが、書き方がわかりません...
私は XPath の専門家ではないので、間違った方向に進んでいる場合はお知らせください。[i] を削除したかのように、カウンターが必要かどうかは実際にはわかりません。30 チームすべてで 30 のリストを取得するだけです。