【问题标题】:console.log() nothing shows upconsole.log() 什么也没有出现
【发布时间】:2019-01-20 15:13:34
【问题描述】:

刚刚更新了我的代码,出于某种原因console.log() 没有输出任何内容,知道为什么吗?

它现在返回这个:

undefined
done
200
null

脚本:

const request = require('request');
const cheerio = require('cheerio');

request('https://kith.com/collections/footwear/products/jbaq4160-140', (error, response, html) => {
    if (!error && response.statusCode == 200) {
        const $ = cheerio.load(html);

        const output = $(':contains("6")').attr('value');

        console.log(output);
        console.log('done');
    }
});

【问题讨论】:

  • 可能有错误?或者状态码不是 200...
  • 也许error 不是“假”或response.statusCode 不是200?
  • 确保您没有在控制台的过滤器字段中意外输入内容。
  • 尝试在检查错误和状态代码之前添加console.log 调用。这样你就可以自己查看状态码了。

标签: javascript node.js logging console


【解决方案1】:

您似乎认为(!error && response.statusCode == 200)。在括号后面再放两个console.log。

      request('https://kith.com/collections/footwear/products/jbaq4160-140', (error, response, html) => {

      if (!error && response.statusCode == 200) {
      const $ = cheerio.load(html);

      const output = $(':contains("4.5")').attr('value');

      console.log(output);
      console.log('done');
    }
    console.log(response.statusCode);
    console.log(error);
});

【讨论】:

  • 谢谢它的工作,虽然现在我得到错误 403,关于如何绕过它的任何想法?我会把它标记为 awnser,因为它是。
  • HTTP 403 表示:禁止访问。该网址可在浏览器中使用,但您的代码不会发送任何标头,因此可能会解释 403。尝试添加用户代理标头。 “用户代理”:“请求”
【解决方案2】:

像这样添加一个用户代理标头:

var options = {
  headers: {'user-agent': 'request'}
}

 request('https://kith.com/collections/footwear/products/jbaq4160-140', options, function(error, response, html) => {

【讨论】:

  • 太棒了,但现在它返回(回头看看问题)元素肯定在那里。
【解决方案3】:

在您的代码中,替换:

const output = $(':contains("4.5")').attr('value');

const output = $

我怀疑你的表达有问题:$(':contains("4.5")').attr('value')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 2019-04-29
    • 2020-12-12
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    相关资源
    最近更新 更多