Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225

Keep-Alive соединение и Cookie

07.10.2015, 23:38. Показов 2983. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, товарищи программисты. Столкнулся с такой вот ситуацией:
При попытке получить страницу сайта, используя HttpURLConnection, встретил переадресацию javascript, и соответственно setFollowRedirects() не помогает.
Пытаюсь получить страницу www . alljobs . co . il
а получаю:

HTML5
1
<html><head><meta charset="utf-8"></head><body><script>window.rbzns = {fiftyeightkb: 43200000, days_in_week : 7};</script><script src="//d1a702rd0dylue.cloudfront.net/js/sugarman/v7/flat.js"></script><script>rbzns.challdomain="www.alljobs.co.il"; rbzns.ctrbg="f7cULHR6xO4lj8yDgCyvnNxabx01l0RVkFY0JZf5bfjTEcB2VWeSslBnqIwyGQJxyj8+7JvXKc5DrhYviEAfbM11QbbV6JZwcLBJEdGxZPBhXyyvXGBAfv/nKhl7PAnLPKfJfVFVQ0bVxJ5noJLmtEwgO38XKGoTSx/CaSPFtilTe/XOhIVayDW44NLuEDI0qG5tYAGBb8jnm/O84EC75A==";rbzns.rbzreqid="nv-alljobs-reblazer231343434323436373036fd61c010943bc4ef"; winsocks(true);</script></body></html>
Кроме того, вопрос вот еще какой:
Как правильно обращаться, что бы любой сайт (сервер) принимал запрос как обычного браузера а не видел во мне робота (автоматический запрос) ?

Мой Connection сегодня выглядит вот так:

Java
1
2
3
4
  url = new URL(address);
            HttpURLConnection HUC =  (HttpURLConnection) url.openConnection();
            HUC.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
            HUC.connect();
Подскажите пожалуйста, как правильно формировать соединение, что бы хитрые сайты и серверы не определяли соединение как робота ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.10.2015, 23:38
Ответы с готовыми решениями:

Почему Cookie в куки заносится значение, а в другом файле Cookie пуста?
Здравствуйте подскажите что я не так делаю все вроде по примерам да ошибок как токавых нет.. но не получается задуманное хочу сделать...

keep-alive в Qt
Нарыл код простейшего однопоточного http-сервера. main: #include &lt;QCoreApplication&gt; #include &lt;qserver.h&gt; int main(int...

It is alive!
Как?! Как это может быть?! #include &lt;iostream&gt; int main () { int i = 4; char c = i; std::cout &lt;&lt; c &lt;&lt;...

16
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
09.10.2015, 21:49  [ТС]
Продолжая заниматься разбором данного вопроса, я понял, что тема создана неправильно. Точнее вопрос поставлен не правильно !

Просьба к администрации сайта, удалить данную тему, или переименовать в "Keep-Alive соединение и Cookie"

Товарищи программисты, ну неужели не кто не сталкивался с данным вопросом ? Получается следующее: Соединение по адресу определяется как Keep-Alive.

Отправляю запрос для получения шапки страницы:

Java
1
2
3
4
5
6
7
8
9
HttpURLConnection HUC =  (HttpURLConnection) url.openConnection();  
 
             Map<String, List<String>> heder= HUC.getHeaderFields();
                Set<String> hdrKeys = heder.keySet();
              
                
                for (String k : hdrKeys){
                  System.out.println("Key: " + k + "  Value: " + heder.get(k));
                }
И в результате, нет не единого слова о Cookie !
Проверяю браузером, содержатся Cookie. На сколько я понимаю, - это как дополнительная защита соединения, генерируемая скриптом.

Делаю полный дубль параметров Request Headrs из браузера и засовываю в setRequestProperty() - Все работает!

Но, меня интересует теперь следующее, - как забрать Cookie не копируя ручками из браузера ?

Java
1
2
3
4
5
6
HUC.setRequestProperty ("Cache-Control", "max-age=0");
            HUC.setRequestProperty ("Connection", "keep-alive");
            HUC.setRequestProperty ("Cookie",PARAMETR );
            HUC.setRequestProperty ("Host", "www.alljobs.co.il");
            HUC.setRequestProperty ("Upgrade-Insecure-Requests", "1");
            HUC.setRequestProperty ("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36");
Добавлено через 8 минут
getHeaderFields() Возвращает вот это -
Кликните здесь для просмотра всего текста
Key: null Value: [HTTP/1.1 200 OK]
Key: expires Value: [Thu, 01 Jan 1970 00:00:01 GMT]
Key: Cache-Control Value: [no-cache, private, no-transform, no-store]
Key: Server Value: [Reblaze Secure Web Gateway]
Key: Connection Value: [keep-alive]
Key: P3P Value: [CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"]
Key: PageSpeed Value: [off]
Key: Date Value: [Fri, 09 Oct 2015 18:20:18 GMT]
Key: Content-Type Value: [text/html; charset=utf-8]
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
09.10.2015, 23:52
IGROK@, адрес напишите куда вы ходите
0
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
10.10.2015, 00:07  [ТС]
KEKCoGEN, В смысле ? Вы хотите сказать другим, чтоб они туда не ходили ?

Добавлено через 8 минут
если вас смущает "Keep-Alive" то можете написать что вам угодно... TCP / HTTP или то как вы считаете будет более правильным
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
10.10.2015, 03:44
Цитата Сообщение от IGROK@ Посмотреть сообщение
Вы хотите сказать другим, чтоб они туда не ходили ?
да. Именно поэтому я и задал этот вопрос
0
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
10.10.2015, 10:05  [ТС]
KEKCoGEN, Я смотрю вы не желаете отвечать по теме, и это уже не первый раз с вашей стороны такого рода сарказмы.
Я отклонюсь от темы, и попробую коротко вам объяснить что вы не правы!
- 1. Если вы считаете что вопрос поставлен не правильно, или человек не совсем корректно излагает суть вопроса, - это не означает что вы самый умный, ибо умный человек, отвечающий по теме, поправит и объяснит, а не будет рассказывать о уровне образованности и выборе правильного учебного заведения.

Кроме того, ЛЮБАЯ ПРОГРАММА, предназначена для решения задачи, или облегчения работы (какой бы то нибыло сферы) человеческой сферы деятельности, а в конечном счете бизнеса.

А если программа справляется со своими задачами (облегчение, улучшение, автоматизация - БИЗНЕС), тогда она востребована. И плевать всем (кроме программиста, который правит код) как оно написано - Главное что работает !

KEKCoGEN, - ЗАПОМНИТЕ !
1 - Идея!
2 - Реальность идеи
3 - Рентабельность и целесообразность

(p.s. Я много работал в архитектуре, и не однократно слышал и видел, как куча инженеров плюются чертя сложную строительную документацию, на основе идеи Архитектора - дизайнера. Но мало кто из них задумывается, что они получают деньги, благодаря тому, что идея и рентабельность решают их зарплату и обеспечивают их работой) Тоже самое, я считаю и по отношению к программированию. Вы программист - технарь, а я архитектор Я создаю идеи, и если они работают, вы (или кто-то другой) допишите код так, как это правильно с технической точки зрения Главное что бы это было нужно людям, и целесообразно с точки зрения бизнеса.

А если вы не желаете помогать или подсказывать людям, которые менее подкованы технически чем вы - то грош вам цена как человеку.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
10.10.2015, 13:31
IGROK@, я поясню зачем я задал вам свой вопрос
Смотреть на код и искать проблему - не самый эффективный способ. Лучше запустить код самому и посмотреть что не так. Для этого я и попросил у вас адрес куда вы отправляете запрос.

То что вы написали ниже к теме не относится вообще непонятно к чему это.
0
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
10.10.2015, 13:44  [ТС]
Куда я обращаюсь (хожу), написано в первом посте --- www . alljobs . co . il

Добавлено через 4 минуты
Вопрос прежний:
Цитата Сообщение от IGROK@ Посмотреть сообщение
Делаю полный дубль параметров Request Headrs из браузера и засовываю в setRequestProperty() - Все работает!
Но, меня интересует теперь следующее, - как забрать Cookie не копируя ручками из браузера ?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
10.10.2015, 14:42
IGROK@, когда вы запрашиваете адрес сайта, сначала выполняется скрипт по адресу
http://d1a702rd0dylue.cloudfro... v7/flat.js

Он на основе всяких разных данных броузера\клиента (не смотрел особо) генерирует куки ключ вида
Cookie: rbzreqid=nv-alljobs-reblazer3313434343437373130311b65e1b0cba 54cc5; rbzid=TVI4OXdQTytrUS9YM0Y4K0xCL1lZWFZNWl dLOTFSUzVOTXZPTEtIczdJQmlYYkpWMFhMQ2wzaG 5FMDBqQzJXdEhlZUsxRG1WMEtoREpqNFhrellNd3 hjbnNjc0lvdklJNWVQUDM0S2M2b3hUaW9mdzQzV3 RWM1BqeDZ2UGIyRmlSOHVJMHU0b3ZWaHNFenJWdm VOdzVqMnJiaHc1Q2ZZNHN5S2pLZytPTjZDNFBRbm 5XMzM0eDFobExHNmJTZWZrUmFKeTFtZmFhWjZSVW NJaldSaFNlZml0cmNUVXZpeWVUdTJiWHc0U0lRQ1 p6RFp1TXIwL2c2cXl2dDNpbXVSQ1IrVFVkTW9OMX BqU0MrODBGVzU5WnlVdVJRck10MExhUFBtb1N4VW xrTFU9QEBAMzAyQEBALTIyMjIyMjIyMDIw
Затем опять идет вызов alljobs с этими значениями и сервер в ответ на них дает куки сессию с которой потом можно ходить по сайту.

Запустить этот скрипт из кода затруднительно т.к он использует API броузера в частности объект window который не сущестует если мы запускаем скрипт не из окна браузера.

Думаю решением тут может быть использование Selenium Web driver
Который откроет окно браузера, получит сессию и затем можно уже будет делать все остальное.
0
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
10.10.2015, 15:00  [ТС]
- Возможно есть решение, которое позволит представлятся перед сайтами (серверами), эмитируя работу браузера без дополнительного софта ?

Просто фигня какая-то получается... У меня програмка строит Б/Д с разных сайтов, блуждая по просторам интернета, изучая структуры и запоминая их страницы. И получается такая ерунда, - сегодня этот сайт со своим скриптом, а завтра другой... А если их на собирается N - то... Не хорошо как то...

KEKCoGEN, - спасибо за ответ.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
10.10.2015, 15:10
Цитата Сообщение от IGROK@ Посмотреть сообщение
Возможно есть решение, которое позволит представлятся перед сайтами (серверами), эмитируя работу браузера без дополнительного софта ?
селениум именно это и делает. Если не считать сам броузер, то доп. софта нет.

Можно самому описать API броузера, но дело это муторное и работать все равно будет криво скорее всего.
0
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
10.10.2015, 16:05  [ТС]
Плохо! Все очень плохо !!! ))))

Как вы думаете - виртуализация обработки данных полученных от сервера, эмитируя работу браузера, - возможна ? куда смотреть и где копать ?
Ну не устраивает меня Selenium Web driver. У меня тысячи соединений - на всю ширину канала моего интернета. (гипотетически ) )

Блин, и все это из-за куки сессии
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
10.10.2015, 16:17
Цитата Сообщение от IGROK@ Посмотреть сообщение
данных полученных от сервера, эмитируя работу браузера, - возможна
гуглите, может кто-то имплементировал API броузера уже. Я о таком не слышал

Цитата Сообщение от IGROK@ Посмотреть сообщение
Ну не устраивает меня Selenium Web driver. У меня тысячи соединений
Используйте селениум только в тех случаях когда это необходимо (как тут). К тому же вам нужно лишь один раз открыть и получить куки для текущей сессии.
Для других сайтов пишите обычный парсер.
0
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
10.10.2015, 17:45  [ТС]
А как на счет подключения мобильного браузера к проекту ?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
11.10.2015, 16:09
IGROK@, в соседней теме советуют http://ru.selenide.org/
Там у ТС тоже проблема с cloudflare
0
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
11.10.2015, 16:30  [ТС]
Я тут решил, попробовать подключить библиотеку javafx, и использовать технологию браузера. Но доступ к многим полям закрыт! Буду пробовать Силениум
0
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
15.10.2015, 19:07  [ТС]
KEKCoGEN, Спасибо, нашел уместным и целесообразным применение Selenium Web driver в отдельном потоке для отдельных случаев. Единственное, - теперь когда запущен проект, постоянно весит окно браузера
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2015, 19:07
Помогаю со студенческими работами здесь

Stayin’ Alive
Долго думала, куда написать: в форум о здоровье или в форум о музыке... Решила всё-таки в здоровье :) Песня &quot;Stayin’ Alive&quot;...

HttpClient не работает Keep-Alive
Всем привет. Для запросов использую следующий метод: using (var client = new HttpClient()) { ...

HTTP GET-запрос и keep-alive
Есть HTTP keep-alive соединение. Через него надо сделать серию GET-запросов. Со стороны клиента это можно сделать двумя путями: 1)...

Проблемы с передачей Cookie (очистка Cookie)
Всем привет! Кто нибудь пытался реализовать обмен с сайтом с авторизацией и сохранением Cookie? Для понимая, вот алгоритм: 1)...

wiznet vs keep alive, как это работает???
Здравствуйте, заранее извиняюсь если тема не в той ветке или уже обсуждалась. ( но я никак не могу найти ответа) Проблема с Wyznet 5300 и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru