我使用Nokogiri解析HTML并获得og:image
值:
def get_og_image url
html = open(url, "r:binary").read
doc = Nokogiri::HTML(html.toutf8, nil, 'utf-8')
if doc.css("meta[property='og:image']").present?
img_path = doc.css("meta[property='og:image']").first.attributes["content"].value
end
img_path
end
现在
> get_og_image "http://techcrunch.com/2014/08/05/the-hug-a-water-bottle-sensor-and-app-helps-you-stay-hydrated/"
=> "http://tctechcrunch2011.files.wordpress.com/2014/08/the-hug_office.jpg?w=680"
> get_og_image "http://www.yahoo.co.jp/"
=> nil
但是yahoo.co.jp有og:image值:
<meta property="og:image" content="http://k.yimg.jp/images/top/ogp/fb_y_1500px.png">
我如何才能在野村获得正确的og:图像?
的响应HTMLhttp://www.yahoo.co.jp/",我遇到了问题,由用户代理更改。
当我使用Nokogiri访问URL时,我设置了一个伪用户代理,然后我可以获得og:image。