Как отфильтровать результат (стр. $$ eval) - PullRequest
0 голосов
/ 09 марта 2019

Я использую следующий код для выбора всех ссылок на веб-странице:

const hrefs = await page.$$eval('a', as => as.map(a => a.href));

Мне нужно знать, как отфильтровать эти ссылки с теми, которые содержат только / product / & includes / c/ например?

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Вы можете добавить Array.prototype.filter() с помощью String.prototype.includes() предикатов:

const hrefs = await page.$$eval(
  'a',
  as => as.map(a => a.href)
          .filter(href => href.includes('/product/') && href.includes('/c/'))
);
0 голосов
/ 09 марта 2019

Этого можно добиться, используя метод .filter вместо метода .map.

Вот что вы можете попробовать:

const hrefs = await page.$$eval('a', as => as.filter((d)=>{
                return (d.contains('/c/') && d.contains('/product/'))
              }));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...