Я немного прочитал о Headless- Chrome и API Puppeteer, который разработал Google. Я уже видел несколько ответов о переполнении стека о запуске Headless Chrome, и я также знаю все о Selenium для тестирования веб-страниц и очистки веб-страниц. Я сам написал HTML Parser, Search and Update Package, но часто сталкиваюсь с проблемами, когда на веб-странице есть Java -скрипт, содержащий данные, которые я пытаюсь проанализировать и получить.
Согласно документации Google, безголовый Chrome поддерживается в оболочке Google Cloud Platform (тип Linux / Debian / BSD для UNIX командной строки, аналогично Amazon Web Services). Сегодня я попытался загрузить веб-страницу с помощью простой командной строки Chrome без головы, но оболочка вернула мне ошибку следующим образом:
@cloudshell:~$ chrome --headless --disable-gpu --dump-dom https://sepehr.irib.ir/?idc=32&idt=tv&idv=1
Я набрал это в экземпляре BASH Оболочка на GCP, и получил эту ошибку.
[1] 498
[2] 499
bash: chrome: command not found
[2]+ Done idt=tv
Приведенный выше URL является просто URL из этого вопроса переполнения стека . Я просто играл, чтобы посмотреть, смогу ли я ответить. Это очень часто задаваемый вопрос типа «Web Scraping», который я читаю в теге Web Scraping. Это не слишком важно (не для меня, но, возможно, для ОП это может быть!) Согласно нескольким видео на YouTube, Google Chrome Безголовый JSON API позволяет пользователям запускать экземпляр Chrome так, что он работает как PaaS , а не как пользовательский интерфейс, который можно просматривать. Это кажется довольно хорошим, и я полностью осознаю, что технология Selenium Web-Scraping уже воспользовалась этой услугой. ОДНАКО, я просто хотел бы начать доступ к API JSON из Java - без использования Selenium - прежде всего, чтобы увидеть, могу ли я это понять, и, надеюсь, начать отправка JSON запросов (в Java) на Chrome Headless из экземпляра Google Cloud Shell без добавления всей сложности Java Selenium Package.
Этот вопрос переполнения стека (и ответы), похоже, является «частичной копией» моего вопроса, к сожалению, страницы справки Google утверждают, что с 2019 года служба полностью поддерживается - и ответы здесь - с 2018. Я подозреваю, что мне не нужно было выполнять КОМПЛЕКТАЦИЯ Chrome для запуска безголового экземпляра Chrome из командной строки, но я могу ошибаться. В любом случае, более новые ответы, отражающие работу 2019 и 2020 годов, проделанную Google Devs, помогут - и, что более важно, я хотел бы использовать «Обычные старые Java объекты» для запроса браузера, вместо использования Pupeteer
и Node.JS
. Я могу очень хорошо справиться с JSON
в Java.
Есть ли команда BASH sudo, которую я могу использовать для запуска экземпляра Chrome
в Оболочка GCP?
Я рассмотрел предложенные дубликаты этого вопроса и не знаю, что делать ...:)