私は今 Scrapy を使い始めており、スポーツ ページ (サッカー選手の名前とチーム) から必要なコンテンツを取得する方法を手に入れましたが、他のチームを検索するリンクをたどる必要があります。すべてのチーム ページにリンクがあります。プレーヤーのページへのリンクの構造は次のとおりです。
チームページ: http://esporte.uol.com.br/futebol/clubes/vitoria/ 選手ページ: http://esporte.uol.com.br/futebol/clubes/vitoria/jogadores/
私はいくつかの Scrapy チュートリアルを読みましたが、リンクをたどる必要があり、何も解析しないチーム ページと、プレーヤーをフォローせずに解析しなければならないチーム ページを考えています。私はこの考えに正しく、構文に間違っています.followの私の考えが間違っている場合は、どんな助けも大歓迎です.
ここに私のコードがあります:
class MoneyballSpider(BaseSpider):
name = "moneyball"
allowed_domains = ["esporte.uol.com.br", "click.uol.com.br", "uol.com.br"]
start_urls = ["http://esporte.uol.com.br/futebol/clubes/vitoria/jogadores/"]
rules = (
Rule(SgmlLinkExtractor(allow=(r'.*futebol/clubes/.*/', ), deny=(r'.*futebol/clubes/.*/jogadores/', )), follow = True),
Rule(SgmlLinkExtractor(allow=(r'.*futebol/clubes/.*/jogadores/', )), callback='parse', follow = True),
)
def parse(self, response):
hxs = HtmlXPathSelector(response)
jogadores = hxs.select('//div[@id="jogadores"]/div/ul/li')
items = []
for jogador in jogadores:
item = JogadorItem()
item['nome'] = jogador.select('h5/a/text()').extract()
item['time'] = hxs.select('//div[@class="header clube"]/h1/a/text()').extract()
items.append(item)
print item['nome'], item['time']
return items