1

私は今 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
4

1 に答える 1