【问题标题】:Crawl multiple pages using Apify使用 Apify 抓取多个页面
【发布时间】:2019-03-19 21:23:02
【问题描述】:

是否可以使用带有伪 URL 的 Apify 抓取多个页面?

当人们问同样的问题时,大部分答案都指向伪 URL,如果可能/不可能这样做,并没有真正直接解决问题。

如果我在运行爬虫时不知道伪 URL,并且我从一个页面中抓取了 10 个链接,那么我想抓取这 10 个链接,该怎么做?

https://kb.apify.com/tutorial-creating-your-first-crawler/crawling-multiple-pages

【问题讨论】:

  • 知识库链接指向 Crawler 产品的教程,该产品现已弃用。请访问the Apify SDK tutorial 了解最新信息。

标签: javascript apify


【解决方案1】:

简短的回答:

是的。

长答案:

有两种主要方法可以将更多页面添加到抓取队列中。

预定结构:

伪 URL 用于跟踪符合特定结构的链接。网站通常在他们使用的 URL 中使用一些结构。例如:

https://github.com

使用结构:

https://github.com/{username}/{repository}

因此,如果您想为用户 apifytech 抓取所有存储库,您可以使用这样的伪 URL:

https://github.com/apifytech/[.+]

您可以在tutorial for Apify SDK 中找到有关 PseudoURL 的更多信息。

在运行时动态添加 URL

如果您需要在运行时动态添加更多链接到爬行队列,有几个选项。

使用Apify SDK 时,您始终可以使用requestQueue.addRequest() 函数或utils.enqueueLinks() 函数。

使用Apify Web Scraper时,可以使用context.enqueueRequest()动态添加更多页面。

【讨论】:

  • 谢谢。当另一个页面基于抓取的 URL 排队,并且该新页面具有新的选择器(与原始页面不同)时,推荐的模式是什么?您是否将新的爬虫与新的排队 URL 配对? Docs上有什么例子吗?
  • 当然,Apify Web Scraper tutorial 很好地解释了这一点。基本上,您需要基于 PseudoURL 可以填充的request.userData 进行一些流控制。 Apify SDK tutorial 也使用了这种技术。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多