抓取 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);
});
我正在尝试抓取 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);
});