【发布时间】:2017-08-27 09:37:09
【问题描述】:
我想隔离 pageInfo -> TotalResults 以检查链接是否有效 (= 1)
这是 video_controller.rb:
submitted_link = "https://www.googleapis.com/youtube/v3/videos?part=id&id="+@results[:id]+"&key="+ENV["KEY_YOUTUBE"]
link_result = Nokogiri::HTML(open(submitted_link))
我得到这个结果:
{
"kind": "youtube#videoListResponse",
"etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/GWU-
KIYwNWh_dAkOcA5xDaFhS48\"",
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 1
},
"items": [
{
"kind": "youtube#video",
"etag": "\"uQc-
MPTsstrHkQcRXL3IWLmeNsM/wp71OkMYYohvwOjzLL_4NN8r7w0\"",
"id": "m9h7qCdgPN4"
}
]
}
你有什么想法吗?
【问题讨论】:
-
尝试使用
HTTParty或RestClient而不是nokogiri。你可以得到json,你会得到json的结果并解析它。喜欢link_result["pageInfo"]["totalResults"] == 1 -
非常感谢 :) 通过这样做:youtube_link = JSON.parse(response)['pageInfo']['totalResults'] 效果很好。
-
您使用了错误的工具。 Nokogiri 是一个 HTML/XML 解析器。输出不是 XML 或 HTML,而是 JSON。
-
请阅读“How to Ask”,包括链接页面,“minimal reproducible example”和“How much research effort is expected of Stack Overflow users?”。了解基于 HTTP 的服务可以返回的数据的基本格式非常重要。
标签: ruby-on-rails ruby youtube-api nokogiri