Web scraping 使用Apify,如何提取依赖于模式窗口输入的数据?

Web scraping 使用Apify,如何提取依赖于模式窗口输入的数据?,web-scraping,web-crawler,apify,Web Scraping,Web Crawler,Apify,我感兴趣的是用一个模式窗口来抓取一个网站来选择位置。网站数据取决于在模式窗口上选择的位置 如何显示模式窗口并选择感兴趣的爬网位置 我熟悉Apify,我计划使用interceptRequest()回调函数来显示模式窗口并选择它,但我对如何操作不太熟悉 编辑:为清晰起见添加图片 通常情况下,模态在刮削/自动化方面并不特别。您可以等待模式选择器加载,然后单击关闭模式或执行任何其他操作 所以我检查了工作流程,没有什么特别的。我将不包括整个代码。您可以在上找到详细的教程,在那里可以在线找到其所有功能 因

我感兴趣的是用一个模式窗口来抓取一个网站来选择位置。网站数据取决于在模式窗口上选择的位置

如何显示模式窗口并选择感兴趣的爬网位置

我熟悉Apify,我计划使用interceptRequest()回调函数来显示模式窗口并选择它,但我对如何操作不太熟悉

编辑:为清晰起见添加图片


通常情况下,模态在刮削/自动化方面并不特别。您可以等待模式选择器加载,然后单击关闭模式或执行任何其他操作

所以我检查了工作流程,没有什么特别的。我将不包括整个代码。您可以在上找到详细的教程,在那里可以在线找到其所有功能

因此,一旦您在原始演员或角色中使用了
handlePageFunction
,您只需单击Ver Precio按钮,等待模式打开,然后填写输入并提交即可

await page.click('.verprecio');
await page.waitForSelector('#frmBuscarSucursal2'); // Selector of the modal body
// Alternatively, if this will cause problems, you can just use plain waitFor
// await page.waitFor(5000) // waits 5 secs

// Now we select region
await page.select('#cmbRegiones2', '11'); // Each region has a number value

await page.select('#cmbMunicipio2', '901'); // The same for municipio

// And we submit by clicking on Buscar
await page.click('#btn-modal-buscar2');

如果您想简单使用,也可以使用纯javascript来管理,但它通常不如使用木偶程序函数可靠。

为了给您一个可靠的答案,我需要更多关于页面的信息。你能用网页的URL更新你的问题,并说明需要做什么吗?通常,模态在刮削/自动化方面并不特别。您可以等待模式选择器加载,然后单击关闭模式或执行任何其他操作。@LukášKřivka在网站上。我想提取id=“span precio”字段。我用代理进行了尝试,但仍然没有看到任何模式。你能提供一个截图吗?@LukášKřivka。谢谢你的跟进。我添加了两个截图:第一个截图应该在您第一次访问网站时出现,然后单击Ver precios,然后打开位置对话框,在选择位置后,您应该能够看到价格。