我在抓取Google搜索页面时遇到问题。我可以抓取正常的网页,但是相同的代码在搜索页上不起作用
我正在使用带有cheerio api的nodejs。搜索页面用于“我附近的餐厅”。这是代码
var request = require('request');
var cheerio = require('cheerio');
request('https://www.google.com/search?rlz=1C1CHBF_enUS795US795&q=restaurants+near+me&npsic=0&rflfq=1&rlha=0&rllag=43556429,-83953443,247&tbm=lcl&ved=2ahUKEwikkKDVhvPcAhUEmuAKHekOBl4QjGp6BAgDEE8&tbs=lrf:!2m1!1e2!2m1!1e5!2m1!1e1!2m1!1e3!3sIAE,lf:1,lf_ui:9&rldoc=1#rlfi=hd:;si:;mv:!1m3!1d37687.821017182374!2d-83.91493835!3d43.58986!2m3!1f0!2f0!3f0!3m2!1i324!2i313!4f13.1;tbs:lrf:!2m1!1e2!2m1!1e5!2m1!1e1!2m1!1e3!3sIAE,lf:1,lf_ui:9',(error,response,html)=>{
if(!error && response.statusCode==200){
const $= cheerio.load(html)
$(".dbg0pd").each(function(i, element){
var a = $(this);
console.log('This is from inside the loop')
console.log(a.text());
});
}
})
在网页中,运行inspect元素显示类dbg0pd
包含div
元素,该元素包含餐厅名称。但是.each()
jQuery循环甚至没有触发,因为我的测试console.log语句不打印这是从循环内部
运行node scrape.js
不会打印任何内容。