0

Я очень долго хочу и ищу способы узнать как выполнять скрипты javascript. Т.е делаю запрос на сайт, и мне в ответ должен прийти уже вся html страница где например подгрузилесь данные с помощи ajax, или просто выполнились скрипты.

Делаю я парсер сайтов, и пользователь сам должен ввести ссылку на сайт, если нужно то и куки. Но беда в том что многие сайты используют javascript.

Я знаю что через httpWebRequest, httpClient, не возможно выполнить javascript. Я пробовал webBrowser, он хоть и возвращает уже страницу с выполненным javascript, но я понятие не имею как передавать туда куки, вроде этого нельзя сделать.

Использовать Selenium мне не нужно, потому что все таки мне просто нужно взять полностью всю страницу html, и selenium я как знаю слишком медленный. Пожалуйста! Есть ли способы сделать это? Может как то полученный html текст с httpClient как то обрабатывать и выполнять javascript? Но опять же, я думаю что некоторые ajax запросы используют куки, (хотя это мне не очень волнует)

Komend
  • 79
  • Есть пакет WebView2 (Edge) и парсер AngleSharp, для него есть JS модуль, который можно установить отдельно. WebBrowser (IE 11) и HttpWebRequest - давно устаревшие классы. А HttpClient - это транспорт, он просто грузит файлы и страницы с сервера. Зачастую JS выполнять не нужно, те же JS скрипты отправляют такие же HTTP запросы на сервер, можно отловить эти запросы и сымитировать в принципе не выполняя никаких скриптов. Изучайте сетевые логи браузера. – aepot Jun 10 '22 at 09:41
  • @aepot спасибо за подсказки. Вы пишите что зачастую js выполнять не нужно. Я не понял этого. Вы имеете ввиду что нужно отловить запросы которые возвращают данные которые мне нужны? Или что? – Komend Jun 10 '22 at 12:14
  • 1
    Да, верно, отловить запросы. – aepot Jun 10 '22 at 12:29
  • @aepot хорошо. Это вроде бы не проблематично, если только некоторые запросы не требуют куки. Но такой подход мне в любом случаи не подойдет! Все таки я пользовался одним парсером, ему задаешь ссылку на сайт, и в настройках указываешь ему что парсить, и он парсить и парсит javascript и очень шустро. Хочу сделать так-же, и к сожалению я думаю пользователь не очень захочет анализировать запросы что бы потом спарсить информацию. Спасибо все таки за ответ! – Komend Jun 10 '22 at 12:32
  • 1
    https://ru.stackoverflow.com/a/924276/220553 Если делаете "универсальное" решение, то это бред, каждый сайт УНИКАЛЕН, любому пользователю так или иначе надо будет анализировать сайт, смотреть что и как он делает и эмулировать его работу программно. – EvgeniyZ Jun 10 '22 at 16:05
  • Если бы можно было написать что-то универсальное, уже кто-нибудь давно написал. Вот пример с куками. – aepot Jun 10 '22 at 19:21

0 Answers0