Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 18, 2016 04:46:44

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

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

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



Офлайн

#2 Янв. 18, 2016 08:33:44

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

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

ayb
js не генерирует данные, а получает из внешнего источника.
Мне кажется вы тут сами себе противоречите. Да js получает данные. Не запустите js или его аналог, не получите данные. Вопрос в том что проще. Сделать самому имитатор js или разобрать то, что получается в результате его выполнения. Обычно проще разобрать результат :). У вас конечно может быть другой случай.



Офлайн

#3 Янв. 18, 2016 12:20:54

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

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

Давайте разберем реальный пример:
Есть сайт с бесплатным списком прокси: http://spys.ru/free-proxy-list/RU/
На нем, с помощью JS довольно просто зашифрован порт

Я нагуглил скрипт https://github.com/deapge/twi/blob/master/proxy/fetch_proxy_ip/spys.ru.py
Как видно из тела скрипта он для каждого порта на странице пробегает по своему списку соотношения закодированной цифры порта к раскодированной

Видите ли вы еще какие нибудь способы решить эту задачу?

Офлайн

#4 Янв. 18, 2016 13:43:44

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

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

Попробуй посмотреть в сторону phantomjs или кучи его клонов casperjs, nightmarejs. Но это javascript



Офлайн

#5 Янв. 18, 2016 14:35:56

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

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

Зачем ? Есть готовый скрипт ? В чем проблема ? Зашифровано конечно

Отредактировано FishHook (Янв. 18, 2016 15:16:09)

Офлайн

#6 Янв. 18, 2016 15:22:40

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

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

ayb
У нас форум высокой культуры быта!



Офлайн

#7 Янв. 18, 2016 16:21:00

WoMax
Зарегистрирован: 2014-05-26
Сообщения: 124
Репутация: +  9  -
Профиль   Отправить e-mail  

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

ayb
Зачем ? Есть готовый скрипт ? В чем проблема ? Зашифровано конечно
Наверное шифр изменился и скрипт уже устарел.

Xion
Попробуй покопаться в коде, разобрать строки типа 76, 102 в view-source:http://spys.ru/free-proxy-list/RU/ (firefox), может поймешь алгоритм.
Или Selenium заюзай, что бы не мучиться

Помог бы больше но времени сейчас нет.

Отредактировано WoMax (Янв. 18, 2016 16:31:42)

Офлайн

#8 Янв. 18, 2016 16:52:50

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

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

Я бы хотел найти вариант чтобы разбирать ничего не пришлось, ведь в браузере я яваскрипты не разбираю - они сами разбираются

Офлайн

#9 Янв. 18, 2016 17:00:20

WoMax
Зарегистрирован: 2014-05-26
Сообщения: 124
Репутация: +  9  -
Профиль   Отправить e-mail  

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

Xion
Я бы хотел найти вариант чтобы разбирать ничего не пришлось, ведь в браузере я яваскрипты не разбираю - они сами разбираются

Тогда селениум и прочая ересь для слабаков

Офлайн

#10 Янв. 20, 2016 10:50:42

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

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

Xion
Я бы хотел найти вариант чтобы разбирать ничего не пришлось, ведь в браузере я яваскрипты не разбираю - они сами разбираются

Но тут на самом деле работы на 5 минут, можно просто обновить шифры в уже готовом скрипте, и не писать свой парсер.

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

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version