Использовал кукловода и путь для создания простого веб-мастера и средства проверки электронной почты, чтобы друг мог загрузить материал для него на работе, но столкнулся с некоторыми проблемами.
Я не могу получить доступ к коду для его сайта, поэтому не могу получить имя элемента, в котором находится таблица (поэтому я мог сказать программе прекратить загрузку в конце, используя querySelector, а затем заставить его оценить )
Не могу понять, как заставить бота войти в электронную почту и загрузить нужные файлы, если приходят новые письма и прочее.
Я понимаю, что для задачи 1, я мог бы просто избежать поиска размера списка и использовать перехват в цикле, чтобы он просто загружался, пока не достигнет конца, но не уверен, что это может сработать, и я знаю, что для проблемы 2 я могу используйте тему / заголовок, чтобы настроить таргетинг на нужное письмо, но его электронные письма поставляются предварительно отформатированными, поэтому я не могу их кодировать ключом.
Кто-нибудь знает, как я мог обойти свои проблемы, кроме того, что сказал своему приятелю: «Я не могу это сделать»?
Просто с помощью кукловода. Используйте это руководство ниже, чтобы понять, как использовать кукловода более или менее.
https://medium.com/@e_mad_ehsan/getting-started-with-puppeteer-and-chrome-headless-for-web-scrapping-6bf5979dee3e
Не написал ничего, что стоит опубликовать; большая часть моего кода была просто скопирована и вставлена по приведенной выше ссылке, поэтому здесь я попытаюсь решить проблему 1, используя цикл с псевдо-кодом.
while (! CatchTrigger) {
нажмите кнопку выбора элемента для ссылки на скачивание
индекс приращения
}
catchTrigger был бы просто, если бы бот не мог найти другую ссылку / столкнулся с ошибкой, из-за которой он просто вырвался из цикла, поскольку это означало бы, что он попадал в конец или по какой-то причине генерируемый список по сайту пропускает число (все селекторы загрузки кажутся одинаковыми минус один из дочерних тегов, который начинается с 3 и увеличивается вверх по мере перехода к следующему в списке)
Я не понимаю, почему это не сработает, но прежде чем я попробую это, я хотел спросить, знает ли кто-нибудь более элегантное решение?
p.s Я не могу найти какие-либо сайты для тестирования этого кода, поэтому, если кто-то знает сайт, на котором я могу продемонстрировать этот пример, будет признателен; компания не доверяет мне их учетные данные, поэтому я просил моего друга проверить меня, но это довольно медленно и неэффективно.
Результаты попытки использования querySelector и оценки на этом сайте привели к ошибкам, которые я не сохранил прямо сейчас, но я могу их получить, если вы, ребята, считаете, что я использовал querySelector неправильно.