| 
			| 
					
						| zubr 
								Гость
 | 
								|  | «  : 07-04-2008 06:57 »  |  | 
 
 Пишу программу - умный бот, который программируется пользователем на определенные действия. То есть к примеру зайти на определенный сайт, зарегистрироваться или войти, если зарегистрированный пользователь, к примеру купить книгу (если есть такая) и т. п. Столкнулся с проблемой авторизации. То есть 1-й раз бот на сайт заходит, авторизуется, все нормально. Но при заходе повторно (через несколько минут или меньше) сервер запоминает авторизацию и соответственно предлагает другую страницу, а бот пытается на этой другой странице авторизоваться. Можно ли как-нибудь сделать, чтобы сервер забывал авторизацию. Куки удалять пробовал - не помогает. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Dimka 
								ДеятельКоманда клуба    Offline 
								Пол:    | 
								|  | « Ответ #1 : 07-04-2008 08:47 »  |  | 
 
 Дык от сервера зависит. А бот, по-моему, от сервера зависеть не должен.   |  
						| 
								|  |  
								|  |  Записан | 
 
 Программировать - значит понимать (К. Нюгард)Невывернутое лучше, чем вправленное (М. Аврелий)
 Многие готовы скорее умереть, чем подумать (Б. Рассел)
 |  |  | 
	| 
			| 
					
						| zubr 
								Гость
 | 
								|  | « Ответ #2 : 07-04-2008 09:38 »  |  | 
 
 Это понятно, что от сервера зависит. Вопрос как обойти эту фичу сервера. Не перегружать же приложение после каждого цикла бота. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Finch 
								СпокойныйАдминистратор    Offline 
								Пол:    
								Пролетал мимо
								
								
								
								
								
							 | 
								|  | « Ответ #3 : 07-04-2008 12:11 »  |  | 
 
 Если сервак "помнит" без куков, то скорее всего у него активны сессии. Сессия живет по дефолту 20 минут. Второй выход, разлогинится на сервере. Скорее всего тогда, сервер закроет сессию. А так очень сильно зависит от логики сервера. |  
						| 
								|  |  
								|  |  Записан | 
 
 Не будите спашяго дракона.              Джаффар (Коша) |  |  | 
	| 
			| 
					
						| marat_ 
								Шеф-повар 
								Опытный
								
								    Offline | 
								|  | « Ответ #4 : 07-04-2008 12:51 »  |  | 
 
 что-то подобное писал, клики на рекламе, прочая ботва. спасло разлогинивание. особо не разбирался, времени не было, поэтому остановился на этом варианте |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| zubr 
								Гость
 | 
								|  | « Ответ #5 : 07-04-2008 14:34 »  |  | 
 
 Разлогинится на сервере - понятно решит вопрос, но это если пользователь боту запрограммирует это действие, а если нет?  |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Finch 
								СпокойныйАдминистратор    Offline 
								Пол:    
								Пролетал мимо
								
								
								
								
								
							 | 
								|  | « Ответ #6 : 07-04-2008 16:47 »  |  | 
 
 zubr, Тоды доводи до ума свой бот, чтоб он сам распозновал свое состояние с сервером. В залогинином. Значит не надо логинится. а надо продолжать работать с сервером.  |  
						| 
								|  |  
								|  |  Записан | 
 
 Не будите спашяго дракона.              Джаффар (Коша) |  |  | 
	| 
			| 
					
						| zubr 
								Гость
 | 
								|  | « Ответ #7 :  07-04-2008 17:28 »   |  | 
 
 Хмм... Как это программно сделать? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Вахмурка 
								Помогающий    Offline 
								Пол:   
								Программист
								
								
								
								
								
								   | 
								|  | « Ответ #8 : 07-04-2008 19:05 »  |  | 
 
 Это понятно, что от сервера зависит. Вопрос как обойти эту фичу сервера. Не перегружать же приложение после каждого цикла бота.zubr
 , если перезагрузка приложения помогает, значит север индефицирует пользователя по атрибутам клиенского сокета, может попробовать разрывать связь с сервером после регистрации. Тогда при новом соединении будет создаваться новый соекет с другими ( хотя это не факт, скорей всего придётся проверять программно ) клиенскими атрибутами. Ну и куки тоже лучше не посылать.   Есть ещё одна идея: попробовать при повторном входе посылать серверу какие ни будь "неправильные" куки, он тогда точно выдаст страницу авторизации. Но всё это надо проверять. |  
						| 
								|  |  
								| « Последнее редактирование: 07-04-2008 19:30 от Вахмурка » |  Записан | 
 
 Программа – это мысли спрессованные в код. |  |  | 
	| 
			| 
					
						| Finch 
								СпокойныйАдминистратор    Offline 
								Пол:    
								Пролетал мимо
								
								
								
								
								
							 | 
								|  | « Ответ #9 : 07-04-2008 20:03 »  |  | 
 
 Ну как правило авторизация оформляется через поля расположенные в форме. Я так понял, ты работаеш через движок IE. Иши формы <form>. Скорее всего будет оформлено через метод ַPOST. Ну и в этой форме проверку по ключевым словам Password, Login, Nick ... Можно поискать тег, оформленный так <input type="password"> Это должно работать в большинстве случаев. А так все зависит от фантазии веб дизайнера.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Не будите спашяго дракона.              Джаффар (Коша) |  |  | 
	| 
			| 
					
						| marat_ 
								Шеф-повар 
								Опытный
								
								    Offline | 
								|  | « Ответ #10 : 08-04-2008 03:39 »  |  | 
 
 ага. также искал. потом напоролся на сайт, с которым проблемы были: не заходил и всё тут. бился несколько часов, потом просмотрел в експлорере, а там ошибка была: вместо обычного "password" стояло "pussword". пришлось учитывать вариант неграмотных программеров. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| zubr 
								Гость
 | 
								|  | « Ответ #11 : 08-04-2008 06:52 »  |  | 
 
 Вахмурка, вариант с сокетами отпадает, бо как Finch правильно предположил бот работает на основе движка IE (на порядок меньше работы, чем вручную парсить, отлавливать действия пользователя и т. п.). Хотя... если только попробовать перехватывать функции создания сокета - но это слишком гиморно, хотя возможно и самый реальный вариант.Насчет неправильных куков, похоже пока сессия не закончится, некоторые серверы на хуки не срабатывают.
 Finch,  твое предложение подойдет для конкретных серверов, как универсальное решение - оно трудно выполнимо, или тогда надо чтобы пользователь сам обучал бот, на вариант регистрации и без. В таком случае, может просто вменить пользователю обучить бот разлогиниваться по окончании цикла. Но так как хелп пользователи читают редко этот вариант будет работать плохо.
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Finch 
								СпокойныйАдминистратор    Offline 
								Пол:    
								Пролетал мимо
								
								
								
								
								
							 | 
								|  | « Ответ #12 : 08-04-2008 17:19 »  |  | 
 
 zubr, Пароль как правило ввводится в поле, которое закрывает знаки звездочками. Я насколько знаю из стандартных средств, только тег <input type="password">  позволяет это сделать в HTML без лишних плясок с бубном. Просто дай на поиск именно данное поле. Находиш, то скорее всего нужно залогинится. Хотя некоторые изврашенци могут его втиснуть в страницу со свойством display:none. Но тут все случаи жизни   |  
						| 
								|  |  
								|  |  Записан | 
 
 Не будите спашяго дракона.              Джаффар (Коша) |  |  | 
	|  |