Java

Чем парсить сайты где есть javascrip?

Программирую на java, хотел написать парсер, взял json, но только он не парсит элементы которые создаются javascript, как быть?
Ал
Александр
1 201
Есть два пути

- headless-браузеры, браузерные движки. изучай Selenium, Chrome DevTools Protocol

- перехватить запросы (которые и отправляет JS) и повторить своим кодом. Как правило это HTTP-запросы через XMLHttpRequest или любую из его оберток (jQuery AJAX и т. д.), реже через Fetch API, или вообще не HTTP запросы через WebSocket. Для перехвата запросов используются разные средства работающие по принципу MITM, например Fiddler, или можно к браузеру написать расширение сниффер.

А при чем тут JSON?
АТ
Александр Тозик
92 464
Лучший ответ
Александр просто когда гуглил как парсить сайты на java, почти всегда говорилось что надо использовать json для этого
Александр а я только начал это изучать, поэтому и задаю вопросы, допустим глупые, а вы сразу стали профи? и зачем сразу оскорблять? лично я ответил грубостью на грубость, ваши знания в этой теме я не оценивал, и фамилия моя русская как и я сам
Java для этого не лучшим образом подходит, всё-равно придется писать обёртки. На помощь приходит NodeJS, приложение которого можно вполне себе вызвать из консоли, любой пакет NodeJS проекта можно сделать CLI инструментом. Далее, любой сайт открываемый браузером, можно открыть виртуальным браузером и запустить на выполнение. Есть принцип работы с Headless Chrome, например через puppeteer, где вы запускаете SPA сайт на исполнение, программно делаете на сайте действия (авторизация, нажатие кнопок) и затем просто сканируете DOM на результат, можно скриншотить, можно выводить как PDF и тестировать. Но для этого нет смысла вообще брать Java, есть смысл всё писать на NodeJS, но многому придется доучиваться. Посмотрите есть ли аналоги Headless Chrome для среды Java, может и есть такое уже.
Более продвинутый парсер приобретать, как правило в бесплатном доступе их нету...
Но если вам на долго, то возможно имеет смысл..

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