| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Вход в админку ucoz |
| Автор: ozzii 31.8.2009, 07:10 |
доброе время суток! одноименный сабжу вопрос: нужно автоматизировать индексацию сайта в поисковиках, для этого нужно автоматизировать вход в админ-панель ucoz, желательно с помощью indy а не webbrowser. как сделать это? |
| Автор: niteo 31.8.2009, 07:24 |
| А в чем у тебя возникает трудность? Как я понял ты хочешь чтобы ее тебе написали? |
| Автор: ozzii 31.8.2009, 07:42 | ||||
нет, не хочу. а трудность в том, что у меня на данный момент есть вот такой код:
но он не работает. кроме того я пытался выполнить вход с помощью idhttp - также безуспешно. проблем с заполнением полей логин-пароль нет. |
| Автор: ozzii 31.8.2009, 08:29 | ||||
это не работает. именно так я и делал до того, как на olevariant перешел |
| Автор: Magister Y0da 31.8.2009, 08:37 |
| покажи код формы входа |
| Автор: niteo 31.8.2009, 08:45 | ||
Что не работает???? Говорит ошибку? если да, то какую???? |
| Автор: ozzii 31.8.2009, 13:01 | ||
код входа с помощью idhttp:
нет ошибок не было, просто в мемо возвращает главнyю страницу сайта, а в админку не заходит ( |
| Автор: Magister Y0da 31.8.2009, 14:51 |
| я имел виду HTML |
| Автор: ozzii 31.8.2009, 18:57 | ||
любой укозовский сайт с приставкой /admin/ к примеру
или нужен конкретный сайт на укоз для теста? |
| Автор: mr_smit 31.8.2009, 19:34 | ||
Вот что шлет браузер при авторизации на твоём сайте:![]() Надо отправлять то же самое.
Кидаешь на форму IdHTTP и IdCookieManager. У IdHTTP в свойстве CookieManager выбираешь IdCookieManager1. HandleRedirects устанавливаешь в true. Насколько я понимаю yjd1332465386 и 457932 это твой идентификатор в системе ucoz. В Memo1 будет текст страницы после авторизации. |
| Автор: Magister Y0da 31.8.2009, 20:01 |
| mr_smit, а это что за окно перехвата? |
| Автор: mr_smit 31.8.2009, 21:43 |
| Дополнение Tamper Data для Mozilla. |
| Автор: ozzii 31.8.2009, 22:00 | ||
это не идентификатор, это походу скрипт java который генерирует случайное поле и значение. как получить эти значения если они каждый раз другие? |
| Автор: ozzii 1.9.2009, 09:40 |
| народ, так что, нет надежды вход автоматизировать? ( |
| Автор: Magister Y0da 2.9.2009, 09:56 |
| с помощью регулярных выражений можно.... |
| Автор: ozzii 2.9.2009, 18:08 |
ну это я как понял ставить webbrowser и содержимое парсить? с нормальными инди компонентами не выйдет? |
| Автор: Magister Y0da 2.9.2009, 18:45 |
| нет, ты не правильно понял... http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F просто получаешь страницу и потом её парсишь, никаких webbrowser'ов не надо |
| Автор: ozzii 2.9.2009, 21:45 |
| да я знаю, что такое регулярные выражения, что конкретно парсить-то если скрипт выдает рандомное значение. как его получить конкретно из html? |
| Автор: mr_smit 2.9.2009, 22:08 | ||
ozzii, ты прав. Каждый раз новое. Я что то на это не обратил внимание. У тебя в коде страницы есть
Просто из кода страницы их выдерни с помощью Pos() и PosEx(). Если не знаешь как, завтра напишу. Сейчас спать очень хочу, не охота. |
| Автор: Magister Y0da 2.9.2009, 22:32 |
| в коде формы я не заметил никаких подобных значений... только: user= password= a=dologin ss=1 и всё, других нету, попробуй отправлять только эти значения, возможно сработает отправлять надо на http://lost-abc.ru/panel/sub/ |
| Автор: niteo 3.9.2009, 06:59 |
| А в чем проблема, загрузи страницу со скриптами, парсишь ее, потом отправляешь данные. |
| Автор: ozzii 3.9.2009, 09:41 | ||
конечно, напиши пожалуйста, будет полезным. к тому-же в html входа я не нахожу этих значений, видимо их скрипт генерирует после нажатия кнопки вход. да, вот реальный сайт на укозе для теста входа:
|
| Автор: mr_smit 3.9.2009, 10:44 | ||||
Ищи лучше
Я об этом и говорю Добавлено через 8 минут и 48 секунд ozzii, ну что значит не нахожу, вы плохо просматриваете код. Всю страницу генерирует php код и вам она уже возвращается с этими случайными кодами. Её нужно просто пропарсить и вытащить их. Я сейчас на работе, домой приду, напишу как. P.S. Ребят ну вы чего????? Посмотрите исходный код страницы и забейте в поиск <input name= |
| Автор: Magister Y0da 3.9.2009, 15:36 | ||||
ну по такому поиску вообще пусто))) а вот по <input находит 6
нету рандомных значений)))) а 1 вообще input не нужный |
| Автор: mr_smit 3.9.2009, 18:56 |
| Прошу прощения, не до конца разобрался. Всё не так просто. Момент.... почти сделал. |
| Автор: mr_smit 3.9.2009, 21:08 | ||||||||||
В HTML коде есть javascript функция которая возвращает данные для входа. Генерирует она их из строки сформированной сервером.
Функция возвращает строку: <input type="hidden" name="iaj3641925225" value="884748"> То же самое на делфи:
Т.е. 1. Забираем строчку с сайта (>kprwv"v{rg?$jkffgp$"pcog?$kcl5863;47447$"xcnwg?$::696:$@2) 2. Перекодируем её. И получаем два нужных нам поля. 3. И стандартным образом отправляем сайту.
|
| Автор: ozzii 3.9.2009, 21:30 |
| вот спасибон, плюс с меня, пошел тестить |
| Автор: ozzii 4.9.2009, 15:46 |
| mr_smit, не работает, при запросе get вот что показывает ![]() |
| Автор: mr_smit 4.9.2009, 20:13 | ||||
у меня при таком коде ошибку выдает:
![]() Глюк какой то. Может у меня делфи глючит. Создай у себя новый проект (а не мой открывай). Код я тебе разжевал, 100% должно работать. Глюк Indy какой то. P.S. А если делаю
Всё работает. Ничего не понимаю. Как так???????? |
| Автор: Keeper89 4.9.2009, 20:50 |
| Где-то это уже было - некоторые сервера не разрешают подобный доступ. |
| Автор: ozzii 4.9.2009, 21:18 |
вобщем народ, я смотрю что использования Тwebbrowser не избежать, а за код все равно спасибо, хоть он и не работает в данном случае )) |
| Автор: mr_smit 4.9.2009, 22:19 |
| Я долго с разбором кода мучался (не зря когда то HTML и Javascript-ом увлекался). Так просто мы не сдадимся. Надо немного погуглить... Вот: http://forum.vingrad.ru/forum/topic-216468/anchor-entry1548080/0.html |
| Автор: ozzii 5.9.2009, 08:45 | ||
это ошибку доступа 403 решает? в смысле другую, более старую версию инди поставить и все? |
| Автор: mr_smit 5.9.2009, 09:48 |
| ozzii, какую нафиг старую, ты читал вообще что там написано??? Наоборот новую. |
| Автор: ozzii 5.9.2009, 10:33 | ||
у меня стоит CodeGear Rad Studio Delphi и с ним Indy 10, какую еще новую поставить? кроме того я в той теме ни слова про ошибку 403 так и не увидел. |
| Автор: mr_smit 5.9.2009, 17:22 | ||||
Странно, с гуглом это работает:
А с укозом нет:
Добавлено через 1 минуту и 47 секунд У меня Delphi 7. Тебе надо поставить последнюю версию Indy. (чего то там 10.5.0) |
| Автор: mr_smit 6.9.2009, 19:23 |
| ozzii, как успехи? |
| Автор: ozzii 6.9.2009, 21:27 | ||
| с инди ничего не выходит, ошибка вышеописаная 403. пришлось пересесть на тяжеловесный webbrowser и с помощью
получать результат скрипта. ну а дальнейшее - дело техники |
| Автор: mr_smit 7.9.2009, 20:08 |
| Ну получил ты значение _y7M и что дальше? |
| Автор: ozzii 7.9.2009, 21:53 |
| deleted |
| Автор: ozzii 8.9.2009, 00:15 | ||
не работае фигня, замучился. код
возвращает главную сайта, но опять не входит. вроде правильно все делаю..... |
| Автор: mr_smit 8.9.2009, 06:13 |
| Я уже приводил тебе код для входа при известных параметрах. См. выше. Будет ли твой способ работать (TIdMultiPartFormDataStream) не уверен. Посмотри что твой код возвращает в s и s1. И проверь что моя функция возвращает. Сравни. Сохрани страницу в html файл и тренируйся на нем. Чтобы _y7M не менялась. Ты не туда отправляешь. Не надо сюда отправлять http://mysite.3dn.ru/admin. Выше я приводил ссылку. |
| Автор: ozzii 8.9.2009, 08:52 |
| mr_smit, я все проверял по несколько раз. 1) отправляю туда, просто на форуме я другой адрес пишу. 2) s и s1 проверял, возвращает правильно (я сравнивал инструментом HttpWatch Pro 6.1 для Firefox) 3) TIdMultiPartFormDataStream для того и сделан чтобы таким образом использовать, на радикал отправляет, проверил. ну вот, сейчас проверил твоим способом (lData) не заходит все равно. у меня такой вопрос, хотя бы раз у тебя получилось зайти в админку на практике? |
| Автор: ozzii 8.9.2009, 09:28 |
| хотелось бы еще услышать мнение Magister Y0da и niteo, что-то они в обсуждении перестали участвовать... |
| Автор: niteo 8.9.2009, 12:12 |
| Используй Wininet, и будет тебе счастье Вот тебе в помощь http://www.rsdn.ru/?article/?inet/wininet.xml |
| Автор: ozzii 8.9.2009, 18:09 |
| а нельзя будущее счастье конкретизировать до кода применительно к укоз? или хотя бы сказать почему http://forum.vingrad.ru/index.php?showtopic=271240&view=findpost&p=1960287 код не работает... п.с. разве indy не на API сделан? |
| Автор: mr_smit 8.9.2009, 18:22 | ||||||
Нет, т.к. у меня Indy 9 стоит. Надо бы обновить, но всё руки не доходят. Я так понимаю что это решит проблему неправильного ответа сервера что которая приводит к возникновению ошибки. Ладно, сейчас попробую Добавлено через 3 минуты и 8 секунд
Проблема в этом пресловутом запросе:
В методе Post |
| Автор: mr_smit 8.9.2009, 18:38 |
| Чего то я не понял что тут скачивать то надо??? http://www.indyproject.org |
| Автор: ozzii 9.9.2009, 10:10 | ||
не понял я, а что туда GET посылать????? |
| Автор: mr_smit 9.9.2009, 19:11 |
| Нет, в смысле что сайт на этот запрос неправильно отвечает и Indy вызывает своё исключение. |
| Автор: ozzii 11.9.2009, 07:31 |
| mr_smit, надежда есть? |
| Автор: mr_smit 11.9.2009, 17:01 |
| ozzii, конечно есть!!! Я всё что нужно сделал. Функцию тебе написал. Я не знаю почему idHTTP1.Get не проходит. Ну поброди по инету, я не думаю что ты (я) первый столкнулся с такой проблемой. Есть др. форумы по программированию. Возможно где то уже решили проблему. Затык всего лишь в одной строчке. Поставь Delphi 7 и обнови Indy - должно заработать. Все об этом пишут. Я просто не хочу на 10-ку переходить. Мне что ли за тебя всё это делать. Твоя программа. |
| Автор: CBuilder 20.10.2009, 04:04 |
| Знаю Рабочий способ авторизации в админке Ucoz через Indy10. Пример проги под C++ Builder 6 могу выслать на мыло. (На Дельфи думаю переделать не состоит труда) Кому нужно пишите. |