6

cheerioでhtmlスクレイピングを実行しようとしています(jsdonを使用できません。依存関係に問題があります:contextify eccのバグです)が、メタ「og:type」、「og:title」を取得できません。 ..。。

request(Url, function(error, response, body) {
var $ = cheerio.load(body);
    $('meta').each(function() {
        console.log(  $('meta').attr('content'));
    });
});

最初のmetatext/htmlのみを取得します。charset =UTF-8"。ogにアクセスする方法を知っていますか??

4

3 に答える 3

12

取得したいプロパティがわかっている場合、より簡単な解決策は次のとおりです。

var $ = cheerio.load(html);
var result = $('meta[property="og:title"]').attr('content');

(タイトルを取得したいと仮定します。)

于 2015-12-16T13:42:37.603 に答える
3

結果を得るには、オブジェクトのキーを少し操作し$('meta)、必要なキーが存在するかどうかを確認する必要があります。

このコードを試してください:

var cheerio = require('cheerio')
var request = require('request')

request(Url, function(error, response, body) {
  var $ = cheerio.load(body);

  var meta = $('meta')
  var keys = Object.keys(meta)

  var ogType;
  var ogTitle;

  keys.forEach(function(key){
    if (  meta[key].attribs
       && meta[key].attribs.property
       && meta[key].attribs.property === 'og:type') {
      ogType = meta[key].attribs.content;
    }
  });

  keys.forEach(function(key){
    if (  meta[key].attribs
       && meta[key].attribs.property
       && meta[key].attribs.property === 'og:title') {
      ogTitle = meta[key].attribs.content;
    }
  });

  console.log(ogType);
  console.log(ogTitle);
});
于 2012-10-07T12:53:08.577 に答える