如何从JavaScript代码提取JSON数据?

问题描述 投票:0回答:1

[在网页的JavaScript中间丢失了JSON类型的数据。我正在尝试获取并解析它,但我需要首先删除它周围所有无用的代码。

这是我的文件:

require 'nokogiri'
require 'open-uri'
require 'json'

doc = Nokogiri::HTML(open('https://www.tripadvisor.fr/Profile/Randomuser'))
js = doc.css('script').text
puts js # to see what it looks like

这使我可以在一个巨大的字符串中获取所有的script标签。我只想隔离看起来像这样的相关数据:

"sections": {
        "id": "64379b36-ee86-4eeza1c1bc8d_0",
        "type": "REVIEW",
        "items": [{
                 ...
                 }],
        "__typename":"FeedSection"
 },
 {
        "id": "64379b36-ee86-4ezea281c1bc8d_0",
        "type": "REVIEW",
        "items": [{
                 ...
                 }],
        "__typename":"FeedSection"
 }

我尝试使用正则表达式为每个评论/{"id".+"type":"REVIEW".+"__typename":"FeedSection"}/选择JSON数据,但是它不起作用,似乎不是一个好主意。

您将如何在这个巨大的字符串中提取数据的JSON类型?还是有一种更简单的方法来实现我所缺少的?

javascript json ruby nokogiri
1个回答
0
投票

尝试使用JSON.parse进行解析

puts JSON.parse(js)
© www.soinside.com 2019 - 2024. All rights reserved.