javascript - 无法从 github insights 页面抓取贡献者 div

标签 javascript node.js web-scraping puppeteer cheerio

我正在尝试使用 NodeJS、puppeteer 和 cheerio 收集 github 贡献者的见解。

const cheerio = require('cheerio');
const puppeteer = require('puppeteer');
const url = 'https://github.com/grey-software/grey.software/graphs/contributors';

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.waitForSelector('#contributors', {
    visible: true,
  })

  await page.goto(url);
  const pageContent = await page.content()

  const $ = cheerio.load(pageContent);
  $('.contrib-person').each(function (i, elem) {
    console.log(elem)
  });
  await browser.close();
})();

当我运行上面的代码时出现以下错误

UnhandledPromiseRejectionWarning: TimeoutError: waiting for selector "#contributors"failed: timeout 30000ms exceeded

#contributors div 应该会在 30 秒内加载,但我总是会超时。 注意:page.waitForNavigation() 给出同样的超时错误

最佳答案

您的问题是您正在等待选择器存在...在您首先访问该网站之前。在使用 page.goto()

之后使用 page.waitForSelector()

关于javascript - 无法从 github insights 页面抓取贡献者 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63334103/

相关文章:

python - 抓取图片url src时,获取数据:image/jpeg;base64

python - 如何使用json api获取html数据?

javascript - 如何从 Node.js 自定义服务器向客户端发送响应

node.js - Node Js Sequelize 按月选择查询

javascript - 使用 jQuery、JSON 和 AJAX 填充下拉列表

javascript - Adobe Edge 加载事件

javascript - 如何通过 Node 在另一个对象中的位置从对象获取值

python - 我们可以将 XPath 与 BeautifulSoup 一起使用吗?

javascript - css 100 高度带边框

javascript - 表格单元格内的 Bootstrap 日期选择器未正确显示