@RIBAdminio
немного Системный, немного программист.

Граббинг — почему мышь не кликает на элемент?

Добрый день.
Пытаюсь для себя пограбить fl.ru под определённым фильтром "Верстка".
Чтобы оперативно замечать новые проекты.
Для этого использую nodeJS и библиотеку puppeteer, чтобы выставить нужный фильтр проектов имитирую нажатие мышкой. Однако последний клик мыши почему то не срабатывает.
Не могу понять ,почему?
Вот код:

const fs = require('fs');
const puppeteer = require('puppeteer');
const url = 'https://www.fl.ru/projects/';

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(url);
  await page.click('.b-combo__arrow');

  try{
    await page.addStyleTag({path : './my-css.css'})
    await page.click('.b-combo__body_left > .b-combo__list > .b-combo__item:first-child');
    await page.click('.b-layout__right_bordleft_cdd1d3 .b-combo__list > .b-combo__item:first-child');
    await page.click('.b-layout__right_bordleft_cdd1d3 .b-combo__list > .b-combo__item:first-child > span');
  }
  catch (err){
    console.log('\n\n-----------Error description beginning-----------\n');
    console.log(err);
    console.log('\n-----------Error description end-----------\n\n')
    await browser.close();
  }
  
  await page.pdf({path: './page.pdf'}); 
  await browser.close();
})();


Если взглянуть на pdf изображение страницы то будет видно, что все фильтры открыты, но решающий клик, который будет добавлять фильтр не нажат.
60768cf033784184746997.png
Помогите разобраться.

Может есть какие-то попроще способы грабить нужную категорию проектов, чем имитация кликов мышкой?

Заранее спасибо.
  • Вопрос задан
  • 476 просмотров
Пригласить эксперта
Ответы на вопрос 2
dkrylov
@dkrylov
1) Нужно именно по > span в конце кликнуть?!
2) Попробуйте xPath на прямую использовать
3) Логи действий(где ошибка вылетает) выкладывайте тоже как то, по ним можно было бы сказать сразу
Ответ написан
@Kirill-Gorelov
С ума с IT
Я парсил уже как-то fl.
Там обычная статичная страница генерируется. Как уже сказали в комментах, там не нужен браузер.

Как это делал я.
Набрал нужный мне фильтр, сам фильтр отображается в гет(вроде бы, сейчас не помню) параметре. И потом дергал конкретный урл и от туда парсил нужные мне заказы....
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы