使用 ruby 从 tumblr 拉取帖子

Pulling posts from tumblr with ruby

我正在尝试弄清楚如何使用 ruby 从特定的 Tumblr 帐户中提取 posts。我的最终目标是使用 post 数字 => 文本进行散列。我只是在寻找文本和每个 post 数字。

我尝试了以下方法(针对 demo.tumblr.com):

require 'open-uri'
require 'json'

jtest = JSON.load(open("http://api.tumblr.com/v2/blog/demo.tumblr.com/posts/text?api_key=fuiKNFp9vQFvjLNvx4sUwti4Yb5yGutBN4Xh10LXZhhRKjWlV4&notes_info=true&filter=text"))
puts jtest

这给了我,我只会放一个片段:

{"meta"=>{"status"=>200, "msg"=>"OK"}, "response"=>{"blog"=>{"title"=>"Demo", "name"=>"demo", "posts"=>7, "url"=>"http://demo.tumblr.com/", "updated"=>1269024321, "description"=>"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.", "is_nsfw"=>false, "ask"=>false, "ask_page_title"=>"Ask me anything", "ask_anon"=>false, "share_likes"=>false}, "posts"=>[{"blog_name"=>"demo", "id"=>459009076, "post_url"=>"http://demo.tumblr.com/post/459009076/lorem-ipsum-dolor-sit-amet-consectetuer", "slug"=>"lorem-ipsum-dolor-sit-amet-consectetuer", "type"=>"text", "date"=>"2006-10-01 04:00:00 GMT", "timestamp"=>1159675200, "state"=>"published", "format"=>"html", "reblog_key"=>"uHt0TEhP", "tags"=>[], "short_url"=>"http://tmblr.co/Zg4ybyRM_mq", "highlighted"=>[], "note_count"=>5793, "title"=>"", "body"=>"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam nisi lorem, pulvinar id, commodo feugiat, vehicula et, mauris. Aliquam mattis porta urna. Maecenas dui neque, rhoncus sed, vehicula vitae, auctor at, nisi. Aenean id massa ut lacus molestie porta. Curabitur sit amet quam id libero suscipit venenatis.", "notes"=>[{"timestamp"=>"1429905090", "blog_name"=>"hdpreview2", "blog_url"=>"http://hdpreview2.tumblr.com/", "post_id"=>"117273527904", "type"=>"reblog"}

它持续了一段时间,但我不确定如何深入研究。看起来 jtest 实际上是一个哈希,但只有两项,第一项是

{meta => {"status"=>200, "msg"=>"OK"}}

第二个是:

{response => the rest of that....

我可能不知所措,但我无法全神贯注地思考如何通过 ruby.

从 tumblr 博客中获取文本 posts

您真正要问的是如何访问散列中的值。我敢肯定这里有很多关于 SO 的先例。

但为了让您入门,这里有一些示例:

jtest["meta"]["status"] #=> 200
jtest["response"]["blog"]["title"] #=> "Demo"

您可以随时inspect输出。我喜欢使用 pp 来获得更好的格式。