javascript - Node 请求获取奇怪的返回值,导致 jsdom 崩溃

标签 javascript node.js web-scraping httprequest jsdom

我使用请求模块从网站列表中获取数据,然后使用 jsdom 获取 DOM 并执行一些操作。

一些网站返回奇怪的内容(不是 html)。

werid code returned from a website using request module

然后将此图像中的数据传递给 jsdom 以获取 DOM,但它传递了此错误:

TypeError: Cannot read property '$' of undefined

我不知道为什么会发生这种情况,我查看了该网站,它生成的是 HTML,而不是屏幕截图中的乱码!!

代码:

request({
  uri: linkTarget,
  method: "GET",
  timeout: 120000,
  followRedirect: true,
  maxRedirects: 5
}, function(error, response, html){

if (!error) {
    jsdom.env(html,
        ["http://code.jquery.com/jquery.js"],
        function (errors, window) {                         

            var $ = window.$; // Getting Dom

            linkHtml = "";
            $('body script').remove();
            $('body *').each(function() {
                if($(this).text() !== " "){
                    linkHtml = linkHtml+$(this).text();
                }
            });

最佳答案

内容以 gzip 形式返回。 Use zlib to unzip it :

var zlib = require('zlib')
  , request = require('request');

request(params, function (err, res, buffer) {
  if (err) { error(err); }
  zlib.gunzip(buffer, function (err, unzipped) {
    var result = unzipped.toString();
    try {
      result = JSON.parse(result);
      cb(result);
    }
    catch (e) {
      error(e);
    }
  });
});

关于javascript - Node 请求获取奇怪的返回值,导致 jsdom 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23815910/

相关文章:

javascript - xhr 未定义 | Mithril js

python - 作业未滚动到网页上的特定文本

python - 使用 Beautiful Soup 和 Python 从搜索页面提取 HTML 内容

javascript - 图像在打印预览中不呈现

javascript - 自定义事件处理程序 - Dynamics crm online

javascript - 学习 JavaScript(DOM 等)

node.js - 运行 MongoDB 的两个实例

javascript - 渲染 dust.js 模板时出现 TypeError

node.js - Node-Webkit Facebook 集成

python-3.x - (Python 3) Spider 必须返回 Request、BaseItem、dict 或 None,得到 'generator'