парсинг сайта без изменения url #788882


#0 by xmk_okda
Всем привет. Есть сайт, при прогулке по нему не меняется адрес в адресной строке. Я так понял, что данные подгружаются ajax'ом. Большая проблема еще в том, что для входа на сайт в нем обязательно еще нужно залогиниться.   Подскажите пожалуйста, что можно почитать по данной теме и вообще как это работает.
#1 by МимохожийОднако
см Я
#2 by Вафель
в хапросы вставляй нужные куки. Для определения кук юзай фидлер
#3 by xmk_okda
смотрел G. Инфы много, не могу собрать воедино
#4 by МимохожийОднако
Бывает...
#5 by Fragster
такие сайты делают только мудаки
#6 by spock
Охота сделать самостоятельно или есть бюджет под это?
#7 by spock
почти весь интернет на таких сайтах сейчас. Время статики давно прошло.
#8 by trdm
Да, как-то сайт с анекдотами распарсить пытался. эта херня реально раздражает. особенно гугловский обфускатор.
#9 by Fragster
нет, в нормальных сайтах меняется URI, как минимум после #, как максимум - подставляется нормальный действующий урл без перезагрузки страницы.
#10 by spock
Добро пожаловать в современный мир!
#11 by Fragster
всякие яметрики и юлмарты - современные?
#12 by xmk_okda
сам)
#13 by Cool_Profi
Кстати... При нажатии плюсика в списке тем на мисте урл тоже не меняется...
#14 by Serginio1
#15 by xmk_okda
спасибо
#16 by Serginio1
Исходники смотри здесь
#17 by mistеr
Логин это по любому HTTP запрос, как и подгрузка данных. Запросы и куки смотришь в браузере (инструменты разработчика), постом повторяешь в коде в той же последовательности. P.S. Если там что-то ценное и сайт специально препятствует парсингу, ковыряться будешь долго. Узнай, может там есть API. Может платный.
#18 by mistеr
"постом" -> "потом"
#19 by spock
Тогда запасаемся терпением и: - python (мой совет), хотя можно на многом другом; - selenium: ; - chrome (интерактивный режим, будет открываться хром и повторять действия пользователя) или phantomjs (чисто программный режим); - немного кода. По шагам: Берем сайт, смотрим его кишки (в Хроме через Ctrl+Shift+I), ищем нужные последовательности тегов (через Ctrl+Shift+C, встал на нужный элемент, в консоли открылся тот участок кода, который отвечает за это место), там же можно Copy XPath or Copy Selector, пишем чуток кода, вставляем скопированное, радуемся. Все не сложно :) А почему так заморочено, спросите вы? А потому что современный web enterprise работает на динамике. Т.е. html код рисуется на лету. Или по другому - по наступлении какого-либо события (в рун-тайм) изменяется DOM.
#20 by spock
+19 и самое главное - через selenium + chrome/phantomejs эмулируется движок браузера. Т.е. отрабатывает javascript в коде страницы, как будто живой человек открыл через браузер сайт.
#21 by Вафель
Разве? А как же например )
#22 by mistеr
>Все не сложно :) Да уж, не сложно... В данном случае DOM нам нафиг не нужен, нам нужны только данные.
#23 by Serginio1
Угу Angular 2 делали дураки? Single Page Application набирает большую популярность. Кроме того например Может работать и без поддержки JS для сбора статистики. Можно попробовать отключить использование JS
#24 by spock
Ещ раз почитай, дом рисуется динамически. Страницу открыл, а тебе еще пол-страницы нарисовалось в доме. И без джавыскрипт этого не получить.
#25 by Serginio1
Вообще мы можем получить адрес и сами без браузера обращаться за данными. Либо через код, любо через инструменты разработчика или фиддлер
#26 by Вафель
главное знать адреса по которым джсон получается
#27 by spock
Так можно и руками перенести с сайта. Вопрос ведь в реализации инструмента, который в автомате будет подстраиваться под изменения.
#28 by spock
Ребятишки, а давайте вы про js почитаете, а потом будете опровергать про Джейсон и тд.
#29 by Serginio1
Спасибо! Я TypeScript ом балуюсь. На самом деле проще разобрать код. И не дожидаться когда DOM построится. Но это уже на любителя. Из поддержки JS использовал Силениум. Там есть поддержка JQuery для парсинга. В принципе развивается и Jint Который можно прикрутить к AngleSharp Давно этим не занимался.
#30 by spock
Мы может про разные сайты говорим, но мне бывало сложно обфусцированные скрипты разбирать.
#31 by runoff_runoff
за run как рун в карцер ;-)
#32 by Вафель
А null как правильно нужно говорить?
#33 by Serginio1
Ну так или иначе запросы идут через форму. Всегда можно посмотреть какие запросы идут через средства разработчика или фиддлер. Всегда можно распарсить код и посмтреть где какие клики. Понятно, что сайт сайту рознь. Иногда приходится и Silenium с JQuery использовать
#34 by spock
На секундочку, я не говорю, что есть только мой один единственный путь. Я предложил свой конкретный способ. Каждый выбирает свой дзен. Нравится изучать обфусцированные скрипты? - вперед.
#35 by Serginio1
Еще раз я могу использовать  Silenium с JQuery в 1С Там полная поддержка JS
#36 by Torquader
Нет, а что вам не нравится, если не меняется адрес страницы при изменения на ней ? Просто, если меняется адрес, то для браузера - это переход, и кто-то может попытаться открыть сразу несколько разных страниц, просто копируя адрес - для некоторых сайтов это оказывается очень даже критично. А если у вас одна страница и её состояние в Cookie задано, то при повторной загрузке загрузится именно то, что нужно. P.S. Просто, иначе получается, что можно открыть отдельно корзину интернет-магазина, а отдельно справочник и добавить товар в корзину - и очень редкие магазины сразу перерисуют корзину.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С