Найти - Пользователи
Полная версия: Парсинг сайта с javascript
Начало » Python для новичков » Парсинг сайта с javascript
1 2
Xion
Есть ли способ спарсить информацию с сайта, которая генерируется javascript'om?

В гугле нашел способы с QT, selenium, другие вариации с запуском полноценного браузера
Но все это очень медленно и тяжело
FishHook
Ок, у меня есть сайт, на которой JS каждую секунду обновляет содержимое страницы по определенному алгоритму. Каков результат парсинга?
Xion
FishHook
Ок, у меня есть сайт, на которой JS каждую секунду обновляет содержимое страницы по определенному алгоритму. Каков результат парсинга?
То есть нельзя? или что?
FishHook
Xion
То есть нельзя? или что?
То есть вам придется выполнять JS в любом случае. Каким образом - думать вам, запускать страницу в настоящем браузере (то есть гарантированно получить то же, что и пользователь) мне кажется наиболее разумным.
ayb
А JS откуда данные берет ? Можно просто посмотреть какие запросы посылает браузер и какие ответы получает.
FishHook
ayb
А JS откуда данные берет ?
Да откуда угодно, например, данные на страницу могут загружаться вместе с загрузкой самой страницы, т.е. безо всякого аякса. Ну и клиент вполне может получать данные с нескольких разных источников и агрегировать их в соответствии со своей логикой. Или даже с одного источника и опять же их как-то агрегировать/сортировать/фильтровать/упорядочивать - не важно.
ayb
Ну так а зачем выполнять js ? Можно посмотреть откуда данные приходят и забирать их напрямую.
FishHook
ayb
Ну так а зачем выполнять js ?
Потому что тебе нужно то, что показывают пользователю, а не то, что приходит скрипту по сети.
Это могут быть сильно разные данные. Это во-первых. Во-вторых, когда тебе надо распарсить множество сайтов схожей тематики, тебе гораздо дешевле работать с ДОМ, чем вникать в логику работы каждой отдельной страницы с кучей чужого минимизированного джаваскрипта.
FishHook
Ну и, как я уже говорил, джаваскрипта и аякса может вообще не быть, тупенько страничка генерится сразу с готовой табличкой. Т.е. у тебя есть только HTML, как, например, в туториале джанги, какой там аякс, какие данные?
ayb
FishHook
Потому что тебе нужно то, что показывают пользователю, а не то, что приходит скрипту по сети.
Это могут быть сильно разные данные. Это во-первых. Во-вторых, когда тебе надо распарсить множество сайтов схожей тематики, тебе гораздо дешевле работать с ДОМ, чем вникать в логику работы каждой отдельной страницы с кучей чужого минимизированного джаваскрипта.

Очень спорно. Мне от сайта нужны данные, а что там с логикой js мне по барабану. js не генерирует данные, а получает из внешнего источника.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB