我正在尝试使用 nokogiri 废弃某些内容,我想获取 JavaScript 数组内的值,例如此代码中“b”的值。
<script>
var foo = [bar, [a, b, c , d], value, some value, . . ]
</script>
我通过使用doc.search("script")[18].content
获取了脚本 block ,如何在这里获取'b'的值?
最佳答案
所以首先安装 gem rkelly-remix
,rkelly 似乎被放弃了,remix es6(甜蜜)。
需要“rkelly”并实例化解析器parser = RKelly::Parser.new
然后像这样抓取脚本:
doc = '<script> var foo = [bar, [a, b, c , d], 1, 2, 3, 4] </script>'
d = Nokogiri::HTML doc
js = d.search('script').text
接下来用 Rkelly-remix 解析它。
ast = parser.parse(js)
然后您可以迭代节点并使用它们的值。你的例子似乎有点不完整,所以我不能提供更多的东西。如果您想进一步询问 b
,您将需要更多设置该值的 js。如果需要,您可以从这里使用 execjs 或 ruby racer 来评估 js。
希望这有帮助!
关于javascript - Nokogiri - 查找 javascript 数组内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30780204/