【发布时间】:2021-05-22 23:07:34
【问题描述】:
我有这段代码可以拉入页面上的所有脚本。
full_url = URI.join(url, "/").to_s #https://www.example.com
doc = Nokogiri::HTML(URI.open(full_url))
doc.css('script').each do |script|
puts script.content
end
这很好用,可以返回页面上的所有脚本。然而,这使得它比它需要的更复杂,因为我只需要 1 个脚本,一个具有“分析”类的脚本
<script class="analytics">
</script>
但是我找不到一种只按类隔离该脚本的好方法,否则当我知道我需要的值在这个脚本中时,我必须遍历所有其他脚本。
现在我遇到的第二个问题是脚本中有一堆函数和 try/catch 等。 其中我只需要这两行的值:
window.TEST.gameName = "pop1";
window.TEST.gameVersion = "1.1.2";
所以我只想返回值“pop1”和“1.1.2”
window.TEST.gameName 和 window.TEST.gameVersion 只有 1 个实例,因此它们是唯一的。也许我使用 Nokogiri 过于复杂了,我应该只使用正则表达式还是这样会更快?
我也不喜欢 Nokogiri,只是这似乎是最受欢迎的选择。
我尝试了一些使用 doc.at 和 doc.search 的变体,但我一直没有得到任何回报,所以我可能做错了。
【问题讨论】:
标签: ruby-on-rails ruby nokogiri