我一直在使用scrapy进行个人项目。我的问题与下页提出的问题非常相似:
Scrapy: Follow link to get additional Item data?
我正在抓的页面如下: http://www.tennisinsight.com/player_activity.php?player_id=51
此页面包含此表单中的匹配列表,例如:
16回合Def。 Ivan Dodig(37,2.41)(CRO)6-3 6-3回顾比赛统计$ 1.043
我目前用scrapy代码编写,打开页面上的每个链接,其中包含" Match Stats"链接,并将该页面上的数据写入单个记录
除此之外,我想抓住"赔率"列(上面是$ 1.043)并将此数据添加到记录中。
我已经搜索了一个答案,似乎我必须使用Request meta字段并将此数据传递给parse方法。但是,我有一个问题,因为我正在努力将其合并到我的代码中。我上面链接的stackoverflow链接的答案是"要抓取其他页面上的其他字段,在解析方法中提取带有附加信息的页面的URL,从该解析方法创建并返回具有该URL的Request对象并通过其meta参数传递已提取的数据。"
这很有道理,但是,我抓到的URL都在规则中,所以我不知道如何提取所需的数据。
到目前为止,这是我的代码的一部分,希望能更好地解释我的问题。
rules = (
Rule(SgmlLinkExtractor(allow=r"match_stats_popup.php\?matchID=\d+",
restrict_xpaths='//td[@class="matchStyle"]',
tags='a', attrs='href', process_value=getPopupLink), callback='parse_match', follow=True)
parse_match函数将匹配统计信息解析为一个项目。
所以会发生这些匹配统计链接中的每一个都打开了,我无法访问主页的赔率列。
非常感谢任何帮助。