【问题标题】:How to download files through Apify如何通过 Apify 下载文件
【发布时间】:2020-12-19 15:44:29
【问题描述】:

我使用apify/puppeteer-scraper点击下载按钮,将本页数据导出为CSV:

我已经设法模拟了下载按钮(在右下角)的鼠标点击,并且一直到 CSV 下载。现在我想将生成的 CSV 文件下载到某个位置以便使用。

有没有办法做到这一点?我尝试导入require('fs'),但它似乎无法通过 Apify 刮板工作。

这是我目前在Pagefunction(context)中的代码:

const [response] = await Promise.all([
  await page.click('#download-ToolbarButton > span.tabToolbarButtonImg.tab-icon-download'),
  await page.waitForSelector('#DownloadDialog-Dialog-Body-Id > div > button:nth-child(4)'),
  await page.focus('#DownloadDialog-Dialog-Body-Id > div > button:nth-child(4)'),
  await page.click('#DownloadDialog-Dialog-Body-Id > div > button:nth-child(4)'),
  await page.waitFor(5000),
  await page.waitForSelector('#export-crosstab-options-dialog-Dialog-BodyWrapper-Dialog-Body-Id > div > div.foyjxgp > div:nth-child(2) > div > label:nth-child(2)'),
  await page.focus('#export-crosstab-options-dialog-Dialog-BodyWrapper-Dialog-Body-Id > div > div.foyjxgp > div:nth-child(2) > div > label:nth-child(2)'),
  await page.waitForSelector('#export-crosstab-options-dialog-Dialog-BodyWrapper-Dialog-Body-Id > div > div.fdr6v0d > button'),

  await page.click('#export-crosstab-options-dialog-Dialog-BodyWrapper-Dialog-Body-Id > div > div.foyjxgp > div:nth-child(2) > div > label:nth-child(2)'),
  await page.waitFor(60000),
  await page._client.send('Page.setDownloadBehavior', {behavior: 'allow', downloadPath: './downloads'})
  // await  page.hover('#export-crosstab-options-dialog-Dialog-BodyWrapper-Dialog-Body-Id > div > div.fdr6v0d > button'),
  // await page.click('#export-crosstab-options-dialog-Dialog-BodyWrapper-Dialog-Body-Id > div > div.fdr6v0d > button'),
  // await page.waitFor(5000)
  // page.click('#export-crosstab-options-dialog-Dialog-BodyWrapper-Dialog-Body-Id > div > div.foyjxgp > div:nth-child(2) > div > label:nth-child(2)')
]);

【问题讨论】:

    标签: jquery file google-chrome-devtools puppeteer apify


    【解决方案1】:

    Puppeteer scraper 不打算由其他库扩展,即使是原生库,虽然您可以使用下面链接的解决方案作为解决方法,但建议您使用自定义 actor 而不是现成的 scraper这将允许您需要其他库。如果您不能自己制作这样的演员,您可以在市场上发布项目请求。 https://help.apify.com/en/articles/3211799-how-to-add-external-libraries-to-web-scraper https://apify.com/apify/puppeteer-scraper#context

    https://sdk.apify.com/docs/guides/getting-started https://apify.com/marketplace

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 2014-09-04
      • 2022-10-05
      • 2013-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多