我已经通过使用PuppeteerCrawler开发了一个爬虫动作,目前使用的是min。还有麦克斯。并发性1和我有几个问题:
最佳毕业生,Wulfg ng
发布于 2019-10-29 13:50:04
首先,您不需要将maxConcurrency设置为1,而是可以使用puppeteerPoolOptions选项来控制铬(或铬)实例,因为代理与它们绑定在一起(见答案1)。
默认情况下不启用
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,
// })
},
...
});console.log()。要获取代理的IP,请使用以下代码:...
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 });PuppeteerCrawler时,PuppeteerPool的底层实例负责创建和处理铬(或铬)实例。这些铬实例是通过带或不带代理设置的Puppeteer启动的(取决于传递给PuppeteerCrawler).的选项)。
https://stackoverflow.com/questions/58602590
复制相似问题