抓取 Google 字典

Scraping Google Dictionary

我正在尝试抓取 Google 字典并创建一个非官方 API。我尝试使用 Node.js 的 cheerio 和请求包来实现此功能。

这是我的代码:

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

request({
    method: 'GET',
    url: 'https://www.google.co.in/search?q=define+love'
}, function(err, response, body) {

    if(err){
        return console.error(err)
    }


    var $ = cheerio.load(body);

    var a = $(".vk_ans span").text();
    console.log(a);

});

我最初试图废弃这个页面“https://www.google.co.in/search?q=define+love”,我试图废弃粗体 love 写的,它写在 div 与 class vk_ans

但是当我 console.log 回答时,结果是一个空行,所有其他地方我都在做同样的事情,Cheerio 运行良好。我错过了什么?

为了不被识别为机器人,您需要一个用户代理 header。 试试这个:

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

request({
  method: 'GET',
  url: 'https://www.google.co.in/search?q=define+love',
  headers: {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
  }
}, function(err, response, body) {

  if (err) {
    return console.error(err);
  }

  var $ = cheerio.load(body);

  var a = $(".mw").text();
  console.log(a);

});