无法使用Node JS + Cheerio抓取html元素

时间:2018-10-28 20:45:10

标签: javascript node.js parsing web-scraping cheerio

我写了这段代码来从VK页面中获取一些元素。但它返回null。如果我需要获取姓名和个人资料照片,可以帮我吗?为什么我不能使用这个?

const request = require('request');
const cheerio = require('cheerio');

request('https://vk.com/durov', (err, res, html) => {
  if (!err && res.statusCode == 200) {
    const $ = cheerio.load(html);

    const nameElement = $('.page_block');

    console.log(nameElement.html());
  }
});

1 个答案:

答案 0 :(得分:2)

该网站似乎正在检查某些用户代理模板。例如,以下作品:

const request = require('request');
const cheerio = require('cheerio');

request({
    url: 'https://vk.com/durov',
    headers: {
        'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1'
    }
}, (err, res, html) => {
    if (!err && res.statusCode === 200) {
        var $ = cheerio.load(html);
        console.log($('.page_block').html());
    }
});