【发布时间】:2018-05-23 08:52:29
【问题描述】:
我正在尝试从 espn 网站提取游戏赔率。 “moneyLine”赔率隐藏在一个脚本中,我只是无法弄清楚如何访问。理想情况下,每场比赛我都会排成一行。我已经设法逐行提取团队名称和分数,我希望有机会使用它。
scrapy shell
fetch('http://www.espn.com/nfl/schedule/_/week/1')
response.xpath("//script[contains(., 'moneyLine')]/text()")
这是输出
[<Selector xpath="//script[contains(., 'moneyLine')]/text()" data='\n\t\t\tvar espn = espn || {};\n\n\t\t\t// Build '>]
【问题讨论】:
-
它可以将所有脚本作为一个字符串提供给您,您必须使用标准字符串函数或正则表达式来处理它。如果你得到的字符串是正确的 JSON 字符串,那么你可以使用模块
json将其转换为 python 字典。 -
页面可以使用javascript从另一个url读取数据(主要是JSON数据)。如果你在 Firefox 中使用 DevTool 找到这个 url,那么你可以用 scrapy 阅读它。
-
'page' 是一种方法吗?你指的是什么“另一个网址”?
-
page表示web page/portal- 您必须使用DevTool来检查所有XHR请求 - 如果其中一个请求发回您的数据,那么您就有another url。
标签: javascript python xpath scrapy web-crawler