我用我想要抓取的 URL 设置了一个爬虫,演员正在工作,我用 cookie/屏幕截图示例进行了测试。我只是在将 cookie 从演员传递到爬网时遇到问题:
const Apify = require('apify');
Apify.main(async () => {
const input = await Apify.getValue('INPUT');
const browser = await Apify.launchPuppeteer();
const page = await browser.newPage();
await page.goto('http://xy.com/login');
// Login
await page.type('#form_user_login_email', input.username);
await page.type('#form_user_login_password', input.password);
await page.evaluate(() => { document.querySelectorAll('.btn-full-width')[1].click(); });
await page.waitForNavigation();
// Get cookies
const cookies = await page.cookies();
// Use cookies in other tab or browser
//const page2 = await browser.newPage();
//await page2.setCookie(...cookies);
// Get cookies after login
const apifyClient = Apify.client;
// call crawler with cookies
const execution = await apifyClient.crawlers.startExecution({
crawlerId: 'mhi',
settings: {
cookies: cookies
}
});
console.log('Done.');
console.log('Closing Puppeteer...');
await browser.close();
});
我认为cookie没有通过,因为Crawler没有登录。