使用 Node.Js 中的请求抓取 JavaScript 生成的内容
Scraping javascript generated content using request in Node.Js
我需要从谷歌搜索结果中抓取一些只显示在浏览器中的内容(我怀疑这是在启用Javascript的时候)——特别是他们的知识图谱"人们也搜索"内容。
我使用 request
和 cheerio
的组合来抓取,并且已经设法从.com
域强制加载结果,但是,知识库框没有显示在我的结果body
中,可能是因为它是 javascript 生成的内容。
有人知道我是否可以添加设置或可以使用其他库吗?
这是我下面的代码。谢谢!
var request = require('request');
var cheerio = require("cheerio");
request = request.defaults({jar: true});
var options = {
url: 'http://www.google.com/ncr',
headers: {
'User-Agent': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16'
}
};
request(options, function () {
request('https://www.google.com/search?gws_rd=ssl&site=&source=hp&q=google&oq=google', function (error, response, body) {
var $ = cheerio.load(body);
$("li").each(function() {
var link = $(this);
var text = link.text();
console.log(text);
});
});
});
你不能使用node的请求,因为你只是下载静态内容。为了渲染JavaScript,你必须使用浏览器。幸运的是,有无头浏览器专门用于此目的。我建议PhantomJS。
相关文章:
- 使用密码对话框Javascript请求帮助
- 如何使用JavaScript请求网页
- JavaScript请求/操作框架或工具包
- Microsoft认知服务JavaScript请求'访问控制允许来源'
- var someSome=(函数(){..}());一个奇怪的javascript请求
- 如何获得只响应的渲染javascript请求
- Rails控制器操作可以同时处理html和javascript请求吗
- 自动为 JavaScript 请求添加源映射标头
- Google Geocoder 在 url 和 javascript 请求之间有不同的结果
- 通过javascript请求和响应第三方域
- 使用 JavaScript 请求 HTML 页面(Angular 应用程序)
- 如何使用 javascript 请求库忽略无效的 SSL 证书
- 如何使用 PHP 或 JavaScript 请求超过 10000 次的 Steam API
- 定期的javascript请求停止发生
- 无论如何,要将这个JavaScript请求安全地发送到PHP-(这是不可能的)
- 跨域脚本javascript请求
- Web服务和Javascript请求位于同一本地主机端口上
- 来自android的实时javascript请求或来自Controller Cakephp.php的调用javascri
- 非常简单的javascript请求.抓斗元件ID
- Javascript:请求解释