最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

在Linux服务器上运行时,无法加载伪造者页面javascript

运维笔记admin11浏览0评论

在Linux服务器上运行时,无法加载伪造者页面javascript

在Linux服务器上运行时,无法加载伪造者页面javascript

我正在用javascript编写脚本,以从特定网站抓取产品信息。首先,我从网站上获取所有产品链接,然后根据其链接抓取有关产品的信息。从网站抓取产品链接时遇到问题。通常,当您打开站点时,请一直向下滚动,直到所有产品都加载到页面上为止。为此,我使用以下代码:

    await page.evaluate(async () => {
      await new Promise((resolve, reject) => {
        let totalHeight = 0;
        const distance = 100;
        const timer = setInterval(() => {
          const scrollHeight = document.body.scrollHeight;
          window.scrollBy(0, distance);
          totalHeight += distance;
          if (totalHeight >= scrollHeight) {
            clearInterval(timer);
            resolve();
          }
        }, 300);
      });
    });

现在,在具有Windows 10的本地计算机上,它的工作原理像一个超级按钮。当我将代码上传到Linux服务器时,脚本向下滚动页面时,似乎无法加载产品。我们仅获得首页上的产品。我也在Google云计算引擎上尝试过。但没有运气..

任何人都遇到过类似的问题...如果是,请您能帮助我吗。

回答如下:

*免责声明:我的服务器是Ubuntu,因此希望能对您有所帮助,但可能会略有不同。

  1. 请确保puppeteer的特定依赖项均已安装在linux服务器上。他们不会总是与npm i一起安装。用于检查未安装依赖项的命令:ldd chrome | grep not您可能会发现这对于一次全部安装很有用:
sudo apt-get install gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget 

同样,由于您运行的是不同的系统,因此您可能会稍有不同,但是请务必确保使用与系统等效的过程来安装依赖项。

  1. 如果这一切都很好,您将需要检查代码部分,如下所示:await page.goto('https://google', {waitUntil: 'networkidle2'});,并确保waitUntil值正在等待networkidle2。检查有关此值的文档。

  2. 您还可以在slowMo中运行puppeteer,以更好地了解正在发生的事情。此选项会将操作延迟指定的毫秒数。

const browser = await puppeteer.launch({
   headless: false,
   slowMo: 250 // slow down by 250ms
 }); ```
发布评论

评论列表(0)

  1. 暂无评论