我使用python来搜索网络http://www.nowgoal.id/nba.htm,但我需要的关于游戏的数据由脚本http://www.nowgoal.id/data/nba.js填充。然后,我转到js web并发现数据存储在名为'matchdata'的动态变量中。
在chrome DevTools的concole中运行'matchdata',我们可以看到变量'matchdata'是一个数组列表。每个数组都包含游戏的信息,如图所示。
我知道有些工具可以渲染javascript,比如scrayjs / PhantomJS,但是他们花了很多时间。我想知道是否有一些方法可以直接获取变量'matchdata'的内容。
答案 0 :(得分:1)
除非JS变量具有静态值,否则您无法从源代码中提取它。
但在你的情况下,似乎涉及几个XHR调用(检查开发人员工具和网络选项卡),如下这两个:
http://www.nowgoal.id/NBA/en.xml?t=1508135111000
http://www.nowgoal.id/NBA/nbaGoal3.xml?1508135112000
这些是否能为您提供所需的数据?如果是这样,只需将它们用作start_urls
并从结果XML中提取数据。