Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 17, 2016 17:17:00

Xion
Зарегистрирован: 2016-01-17
Сообщения: 21
Репутация: +  0  -
Профиль  

Парсинг сайта с javascript

Есть ли способ спарсить информацию с сайта, которая генерируется javascript'om?

В гугле нашел способы с QT, selenium, другие вариации с запуском полноценного браузера
Но все это очень медленно и тяжело

Офлайн

#2 Янв. 17, 2016 17:21:30

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Парсинг сайта с javascript

Ок, у меня есть сайт, на которой JS каждую секунду обновляет содержимое страницы по определенному алгоритму. Каков результат парсинга?



Офлайн

#3 Янв. 17, 2016 17:27:41

Xion
Зарегистрирован: 2016-01-17
Сообщения: 21
Репутация: +  0  -
Профиль  

Парсинг сайта с javascript

FishHook
Ок, у меня есть сайт, на которой JS каждую секунду обновляет содержимое страницы по определенному алгоритму. Каков результат парсинга?
То есть нельзя? или что?

Офлайн

#4 Янв. 17, 2016 17:30:31

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Парсинг сайта с javascript

Xion
То есть нельзя? или что?
То есть вам придется выполнять JS в любом случае. Каким образом - думать вам, запускать страницу в настоящем браузере (то есть гарантированно получить то же, что и пользователь) мне кажется наиболее разумным.



Офлайн

#5 Янв. 17, 2016 19:04:09

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Парсинг сайта с javascript

А JS откуда данные берет ? Можно просто посмотреть какие запросы посылает браузер и какие ответы получает.

Офлайн

#6 Янв. 17, 2016 19:15:13

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Парсинг сайта с javascript

ayb
А JS откуда данные берет ?
Да откуда угодно, например, данные на страницу могут загружаться вместе с загрузкой самой страницы, т.е. безо всякого аякса. Ну и клиент вполне может получать данные с нескольких разных источников и агрегировать их в соответствии со своей логикой. Или даже с одного источника и опять же их как-то агрегировать/сортировать/фильтровать/упорядочивать - не важно.



Отредактировано FishHook (Янв. 17, 2016 19:16:52)

Офлайн

#7 Янв. 17, 2016 19:25:04

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Парсинг сайта с javascript

Ну так а зачем выполнять js ? Можно посмотреть откуда данные приходят и забирать их напрямую.

Офлайн

#8 Янв. 17, 2016 19:33:14

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Парсинг сайта с javascript

ayb
Ну так а зачем выполнять js ?
Потому что тебе нужно то, что показывают пользователю, а не то, что приходит скрипту по сети.
Это могут быть сильно разные данные. Это во-первых. Во-вторых, когда тебе надо распарсить множество сайтов схожей тематики, тебе гораздо дешевле работать с ДОМ, чем вникать в логику работы каждой отдельной страницы с кучей чужого минимизированного джаваскрипта.



Офлайн

#9 Янв. 17, 2016 19:38:47

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Парсинг сайта с javascript

Ну и, как я уже говорил, джаваскрипта и аякса может вообще не быть, тупенько страничка генерится сразу с готовой табличкой. Т.е. у тебя есть только HTML, как, например, в туториале джанги, какой там аякс, какие данные?



Офлайн

#10 Янв. 17, 2016 19:55:43

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Парсинг сайта с javascript

FishHook
Потому что тебе нужно то, что показывают пользователю, а не то, что приходит скрипту по сети.
Это могут быть сильно разные данные. Это во-первых. Во-вторых, когда тебе надо распарсить множество сайтов схожей тематики, тебе гораздо дешевле работать с ДОМ, чем вникать в логику работы каждой отдельной страницы с кучей чужого минимизированного джаваскрипта.

Очень спорно. Мне от сайта нужны данные, а что там с логикой js мне по барабану. js не генерирует данные, а получает из внешнего источника.

Отредактировано ayb (Янв. 17, 2016 20:03:10)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version