Сейчас я начинаю со Scrapy, и я понял, как брать нужный мне контент со спортивной страницы (имя и команда футболиста), но мне нужно следовать ссылкам в поисках других команд, на каждой странице команды есть ссылка на страницу игроков, структура ссылки на сайт:
страница команды: http://esporte.uol.com.br/futebol/clubes/vitoria/ страница игрока: http://esporte.uol.com.br/futebol/clubes/vitoria/jogadores/
Я прочитал несколько руководств по Scrapy и думаю, что на страницах команд я должен переходить по ссылкам и ничего не анализировать, а на странице игроков я должен не следовать и анализировать игроков, я не знаю, Я прав с этой идеей и не прав с синтаксисом, если моя идея следования неверна, любая помощь приветствуется.
вот мой код:
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