在Puppeteer中获取“语法错误:无效或意外的令牌”

时间:2019-04-12 00:31:56

标签: javascript puppeteer cheerio

我正在尝试使用Puppeteer框架运行脚本。 (我是软件的新手)。每次尝试运行时,都会出现以下错误。我确信代码没有错,因为它可以在其他机器上正常工作。由于main.js调用了(仅)函数,因此该错误被正确记录。

SyntaxError: Invalid or unexpected token
    at new Script (vm.js:80:7)
    at createScript (vm.js:274:10)
    at Object.runInThisContext (vm.js:326:10)
    at Module._compile (internal/modules/cjs/loader.js:664:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
    at startup (internal/bootstrap/node.js:283:19)
var puppeteer = require('puppeteer');
var $ = require('cheerio');
const url = 'https://www.reddit.com/controversial/';
​
puppeteer
  .launch()
  .then(function(browser) {
    return browser.newPage();
  })
  .then(function(page) {
    return page.goto(url).then(function() {
      return page.content();
    });
  })
  .then(function(html) {
    $('h2', html).each(function() {
        console.log($(this).text());
        console.log('\r\n');
    });
    })
  .catch(function(err) {
    //handle error
  });

我已根据此链接(How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X))卸载,清理并重新安装了Node.js

1 个答案:

答案 0 :(得分:2)

这实际上与木偶戏完全无关。在第4行上,您有一个zero width space字符,该字符看起来并不像什么,但会使您的Node程序无效。如果您是从网站或其他来源复制一行,则有时会出现这种情况。

如果删除该行并插入空白新行,那应该没问题。我通过复制代码,安装依赖项并运行它进行了测试。根据您的编辑器,您应该能够显示出意外的Unicode字符。