javascript - 抓取谷歌词典

标签 javascript node.js web-scraping user-agent cheerio

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

这是我的代码:

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,它写在一个 span 中,在 div 中,类 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);

});

关于javascript - 抓取谷歌词典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48571271/

相关文章:

javascript - 使用 Mocha 和 Chai 在 JavaScript 中测试随机数函数

html - 网页抓取 - VBA 搜索参数无法正常工作

python-2.7 - 使用 BeautifulSoup 从 div 中的所有 p 元素中获取文本

javascript - URL 的 Ajax GET 请求失败,但同一 URL 的 hurl.it GET 请求有效。是什么赋予了?

javascript - 将div当前内容替换为另一个页面响应

javascript - 具有圆 Angular 的 CSS 按钮,可对点击使用react

javascript - 如何触发使用闭包变量的事件?

javascript - 如何将谷歌地图定位在前一个 div 下方?

java - 微服务通信

javascript - 如何在错误时打破 promise 链