【发布时间】:2013-09-25 00:37:33
【问题描述】:
我现在开始使用 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
【问题讨论】:
-
好吧,它有效还是无效?
标签: python python-2.7 scrapy web-crawler scrapy-spider