如何从JavaScript中搜索动态变量而不进行渲染?

时间:2017-10-16 04:04:13

标签: javascript python scrapy

我使用python来搜索网络http://www.nowgoal.id/nba.htm,但我需要的关于游戏的数据由脚本http://www.nowgoal.id/data/nba.js填充。然后,我转到js web并发现数据存储在名为'matchdata'的动态变量中。 enter image description here

在chrome DevTools的concole中运行'matchdata',我们可以看到变量'matchdata'是一个数组列表。每个数组都包含游戏的信息,如图所示。 enter image description here

我知道有些工具可以渲染javascript,比如scrayjs / PhantomJS,但是他们花了很多时间。我想知道是否有一些方法可以直接获取变量'matchdata'的内容。

1 个答案:

答案 0 :(得分:1)

除非JS变量具有静态值,否则您无法从源代码中提取它。

但在你的情况下,似乎涉及几个XHR调用(检查开发人员工具和网络选项卡),如下这两个:

http://www.nowgoal.id/NBA/en.xml?t=1508135111000
http://www.nowgoal.id/NBA/nbaGoal3.xml?1508135112000

这些是否能为您提供所需的数据?如果是这样,只需将它们用作start_urls并从结果XML中提取数据。