[在网页的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类型?还是有一种更简单的方法来实现我所缺少的?
尝试使用JSON.parse
进行解析
puts JSON.parse(js)