有关injectFile的基本问题

时间:2019-11-07 08:56:39

标签: apify

我对injectFile有一些基本问题:

  1. 何时建议使用injectFile(code)而不是page.evaluate(code,...)将代码放入要抓取的页面中?
  2. 使用injectFile(code)有什么区别/优点/缺点,例如在性能,抗刮擦性等方面?
  3. 像我一样,应该如何通过替换gotoFunction并实现page.on('domcontentloaded',...)事件来实现injectFile(code)?还是有更好的方法?
  4. “ surviveNavigations”选项的用例是什么(如果不是我上一篇文章中描述的用例)?有什么用?

最好的问候, 沃尔夫冈

1 个答案:

答案 0 :(得分:1)

如果您查看injectFile的简短源代码,它使用page.evaluate,因此它们基本上是相同的。

1)我们几乎总是使用page.evaluate只是因为它的代码较少。如果我们需要使用一些更复杂的库,则可以在Node.js进程(服务器端)中使用它们,而不是将其注入页面中。我们仅将注入用于JQuery。

2)性能或抗刮擦无关紧要。

3)通常,我们注入handlePageFunction,但是如果您需要在导航之前将其注入,则可以注入gotoFunction内。

4)例如,如果单击按钮,则页面可以导航。但是对于新页面/请求,您应该再次注入它。正如我所说,除非您使用一些巨大的库,否则它不会对性能产生任何影响。