我现在开始使用Scrapy了,我从一个体育页面(足球运动员的名字和团队)中获取了我想要的内容,但是我需要按照链接搜索更多的团队,每个团队页面都有一个链接对于玩家页面,网站链接的结构是:
团队页面:http://esporte.uol.com.br/futebol/clubes/vitoria/ players页面: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
Run Code Online (Sandbox Code Playgroud) 我有一个面板,我的想法是让它由包含两个文本框的堆栈面板填充.当用户在左侧框中输入内容时,应在右侧生成内容,如下所示.
<StackPanel Orientation="Horizontal">
<TextBox Name="Lefty" LostFocus="FillMyBuddy" />
<TextBox Name="Righty" LostFocus="FillMyBuddy" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
但是,我想添加一个添加/删除行的选项,因为我希望不限制自己的数量,所以我对两点的方法有点不确定.
以编程方式影响窗口的标记结构是否是一个很大的禁忌?或者在运行时添加/删除面板是否可以?
如果我希望Lefty 3 号在Righty 3 号中改变东西,推荐的方法是什么?还有什么比检查发件人和从父母那里拉出兄弟姐妹更整洁?我想为任何和所有行使用单个事件处理程序(知道操作总是在行内).