现在我正在尝试从这个网站上抓取数据:text与puppeteer。我想做的是,访问的信息,如果过滤器无线电输入“免费”已被选中,但我还没有管理。这就是我目前为止的做法,但不确定我做得好不好。任何帮助将是美好的!
const puppeteer = require("puppeteer");
const fs = require('fs');
const extracteventData = async (url,browser) => {
try{
const eventData = {}
const page = await browser.newPage()
await page.goto(url)
await page.waitForSelector('label.ChoiceListItem_choice__hikcw', { visible: true });
await page.click('label.ChoiceListItem_choice__hikcw');
eventData['Free'] = await page.$$eval('.ChoiceListItem_label__hikcw', (elements) => {
const data = [];
elements.forEach((element) => {
const title = element.querySelector('.event-title').innerText;
const description = element.querySelector('.event-details__main-inner').innerText;
data.push({ titulo, descripcion });
});
return data;
});
...
1条答案
按热度按时间mbyulnm01#
从这个url开始,您必须首先检查没有选择任何内容,如果是,则重置选择
注意:在选择器中,
^
表示以开始,$
表示以结束然后使用XPATH,找到
label
,它具有带有给定文本Gratis的span
标记,并等待相关部分更新,如下所示:你打开的网页与必要的过滤器,以获得所有相关的链接。
然后你就可以通过每个链接来获得详细信息。
以下是所有这些的一个例子:
备注:
'Gratis','Hoy','Negocios','Euro'
,标签,以最小化打开的页面