首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于代理轮换的几个问题

关于代理轮换的几个问题
EN

Stack Overflow用户
提问于 2019-10-29 06:53:30
回答 1查看 995关注 0票数 0

我已经通过使用PuppeteerCrawler开发了一个爬虫动作,目前使用的是min。还有麦克斯。并发性1和我有几个问题:

  1. 是默认激活的代理旋转,还是必须激活它?
  2. 如果代理旋转是活动的,我如何看到它工作,例如,当代理旋转触发时,在哪里可以获得已使用的IP?如果创建了新的爬虫,或者打开了新的选项卡,那么在哪里可以获得已使用的IP?

最佳毕业生,Wulfg ng

EN

回答 1

Stack Overflow用户

发布于 2019-10-29 13:50:04

首先,您不需要将maxConcurrency设置为1,而是可以使用puppeteerPoolOptions选项来控制铬(或铬)实例,因为代理与它们绑定在一起(见答案1)。

默认情况下不启用

  1. 代理轮转。要启用它,您需要按以下方式设置PuppeteerCrawler:

代码语言:javascript
复制
const crawler = new Apify.PuppeteerCrawler({
   ... // code omitted for brevity
   puppeteerPoolOptions: {
       maxOpenPagesPerInstance: 1,
       retireInstanceAfterRequestCount: 3,
       killInstanceAfterSecs: 5,
   },
   launchPuppeteerFunction: () => {
       return Apify.launchPuppeteer({
           useApifyProxy: true,
           // Use a new proxy with a new IP address for each new Chrome instance
           apifyProxySession: Math.random().toString() ,
       })
       // Or you can use proxyUrl option
       // const proxyUrl = Apify.getApifyProxyUrl({ /*groups,*/ session: Math.random().toString() })
       // return Apify.launchPuppeteer({
       //    proxyUrl,
       // })
   },
   ...
});

  1. 您只需要将消息记录到控制台console.log()。要获取代理的IP,请使用以下代码:

代码语言:javascript
复制
...
const request = require('request-promise-native');
...
const session = Math.random().toString();
const proxy = Apify.getApifyProxyUrl({ /*groups,*/ session })
const { clientIp } = await request({ url: 'https://api.apify.com/v2/browser-info', proxy, json: true });

  1. 在使用PuppeteerCrawler时,PuppeteerPool的底层实例负责创建和处理铬(或铬)实例。这些铬实例是通过带或不带代理设置的Puppeteer启动的(取决于传递给PuppeteerCrawler).

的选项)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58602590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档