Что нового

Авторизация на сайтах

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А мне всегда Submit нравился
Код:
#include <IE.au3>

$sLogin = '[email protected]'
$sPass = 'anwcub'
$sUrl = 'http://cpanel.hostinger.ru/'

$oIE = _IECreate($sUrl)
$oForm = _IEFormGetCollection($oIE,0)
$oLogin = _IEFormElementGetObjByName($oForm, 'email')
$oPass = _IEFormElementGetObjByName($oForm, 'password')

_IEFormElementSetValue($oLogin, $sLogin)
_IEFormElementSetValue($oPass, $sPass)
_IEFormSubmit($oForm)
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
C2H5OH [?]
А мне всегда Submit нравился
Но не на всех сайтах он работает. На кнопку "Войти" вешается onclick, при срабатывании в hidden поле заносился хеш. И если вызвать submit напрямую, не кликая на кнопку - форма не отправится.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Есть такое. :(
Но конкретно на этом сайте Submit отрабатывает. :smile:
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Попробуй перезагрузить комп.
Или попробуй запустить не через AutoIt3.exe, а через AutoIt3_x64.exe.
 

uritalex

Новичок
Сообщения
197
Репутация
3
у меня такое выдавало когда после первой регистрации браузер запоминал учетные данные. Попробуйте для начала убить все процессы браузера, потом запустить скрипт в котором только логинетесь и посмотрите запомнил ли браузер Ваши данные. Если запомнил то удалите данные и закройте браузер. И попробуйте заново !
 

mikzin

Новичок
Сообщения
80
Репутация
0
вообщем, обновил IE, заработало.. ;D
так я проавильно понимаю, это будет обязательно при запущеном браузере ?
не есть хорошо..
а как-то без окон осла, по тихому, можно сделать процесс закачки файла?
 

uritalex

Новичок
Сообщения
197
Репутация
3
Попробуй так записать
Код:
_IECreate('Сайт', 0, 0)
Это запуск IE без создания окна. А дальше в зависимости от скрипта. Можно форму прикрутить для выбора файла для загрузки, или диалоговое окно.
 

mikzin

Новичок
Сообщения
80
Репутация
0
не заходит
:(
и, кста, как контролировать загрузку страницы,
в цикле ждать определенный элемент?
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
mikzin [?]
отменили на хостингер.ру доступ по FTP, теперь сижу, мучаюсь...
Подожди, его не навсегда отключили... Подожди чуть-чуть, он скоро появится.
7ftp.jpg


А про авторизацию, загрузку файлов и т.д. Сделай PHP скрипт, который будет принимать от скрипта путь, куда загрузить этот файл и сам файл. И всё.


Добавлено:
Сообщение автоматически объединено:

Вот 100% рабочий скрипт:
Код:
#include <IE.au3>

$sLogin = '[email protected]'
$sPass = 'anwcub'
$sUrl = 'http://cpanel.hostinger.ru/'

$oIE = _IECreate($sUrl)
$oLogin = _IEGetObjByName($oIE, 'email')
$oPass = _IEGetObjByName($oIE, 'password')

_IEFormElementSetValue($oLogin, $sLogin)
_IEFormElementSetValue($oPass, $sPass)
$oButton = $oIE.document.getElementsByClassName('pull-right').item(0)
_IEAction($oButton, 'click')
_IELoadWait($oIE)
 

ssvih-miaa

Новичок
Сообщения
41
Репутация
0
Интересно как быть с такой вот формой
Код:
<form class="auth" action="enter.php" method="post">
				<div class="auth-note">
					<span class="note">E-mail</span>
					<input name="LxuqQRGjxk" type="text" maxlength="40" value="">
				</div>
				<div class="auth-note">
					<span class="note">Пароль</span>
					<input name="sEtexcSGSd" type="password" maxlength="40" value="">
				</div>
            <p><div class="g-recaptcha" data-sitekey="6Ldw_MUSAAAAACml82bmozXV8vxToVE8fPCD9F-8"><div><div style="width: 304px; height: 78px;"><iframe width="304" height="78" title="виджет reCAPTCHA" role="presentation" src="https://www.google.com/recaptcha/api2/anchor?k=6Ldw_MUSAAAAACml82bmozXV8vxToVE8fPCD9F-8&amp;co=aHR0cDovL3d3dy5zZW9zcHJpbnQubmV0Ojgw&amp;hl=ru&amp;v=r20151112120204&amp;size=normal" frameborder="0" scrolling="no"></iframe></div><textarea name="g-recaptcha-response" class="g-recaptcha-response" id="g-recaptcha-response" style="margin: 10px 25px; padding: 0px; border: 1px solid rgb(193, 193, 193); border-image: none; width: 250px; height: 40px; display: none; resize: none;"></textarea></div></div><p></p>
            
            <input class="auth-enter" style="margin-top: 10px;" type="submit" value="ВОЙТИ">
            </form>

Интересно то что в input при загрузке страницы формируется рандомное имя

Нашел решение для первого поля емаил как быть дальше:?
Код:
Local $oForm = _IEFormGetCollection($oIE, 0)

	$tags = $oIE.document.GetElementsByTagName("input")

			   ConsoleWrite($tags & @LF)
		 For $tag in $tags
		 $class_value = $tag.GetAttribute("name")

			If string($class_value) <> "ssvih" Then

				$oLogin  = _IEFormElementGetObjByName($oForm, $class_value)

			   ConsoleWrite($tags & @LF)

			   ExitLoop

			EndIf

		 Next

	_IEFormElementSetValue($oLogin, $sSEOLogin)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
ssvih-miaa [?]
Интересно то что в input при загрузке страницы формируется рандомное имя
Получите имена тегов input а потом используя их установите значения.
 

ssvih-miaa

Новичок
Сообщения
41
Репутация
0
Да именно так я и делаю ноу меня получается что в коде
Код:
Local $oForm = _IEFormGetCollection($oIE, 0)

	$tags = $oIE.document.GetElementsByTagName("input")

		 For $tag in $tags

		 $name_value = $tag.GetAttribute("name")

		 ConsoleWrite($name_value & @LF)


			If Step = 0 Then

				$oLogin  = _IEFormElementGetObjByName($oForm, $name_value)

			    _IEFormElementSetValue($oLogin, $sSEOLogin)

				ExitLoop

			 EndIf

			 If string($name_value) <> 'ssvih' Then

				ContinueLoop

				$oPass   = _IEFormElementGetObjByName($oForm, $name_value)

			    _IEFormElementSetValue($oPass, $sSEOPass)

			    ConsoleWrite($name_value & @LF)

			    ExitLoop

			 EndIf
		 Next


При втором круге заменяет значение из первого поля - емаил на данные из пароля и выходит что в 2х инпутах стоят пароли (
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
ssvih-miaa
Дайте ссылку на сайт.
 

ssvih-miaa

Новичок
Сообщения
41
Репутация
0
Garrett сказал(а):
ssvih-miaa
Дайте ссылку на сайт.
http://www.seosprint.net/
После нажатия на кнопку вход

На всякий скину еще и полный код, так как подразумеваю что придется еще просить помощи с капчей!
Код в следующем ответе напишу


Добавлено:
Сообщение автоматически объединено:

Код:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.14.2
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here
#include <dados.au3>
#include <IE.au3>

Local $oIE = _IECreate()

LogIn($oIE) ; Авторизация на сайте

;**** Функция авторизации на сайте ****

Func LogIn($oIE)

	_IENavigate($oIE, $vSEODomain)

    _IELoadWait($oIE)

	$aLink = _IEGetObjById($oIE, "mnu302")

    _IEAction($aLink, "click")

	_IELoadWait($oIE)

    Sleep(3000)

;	$sHTML = _IEDocReadHTML ($oIE)
;    $f = FileOpen(@ScriptDir & "\HTMLVK.html", 2)
;    FileWrite($f, $sHTML)
;    FileClose($f)

;**** Научился заполнять поле логина ****
    Local $oForm = _IEFormGetCollection($oIE, 0)

	$tags = $oIE.document.GetElementsByTagName("input")

		 For $tag in $tags

		 $name_value = $tag.GetAttribute("name")

		 ConsoleWrite($name_value & '111' & @LF)

			If Step = 0 Then

				$oLogin  = _IEFormElementGetObjByName($oForm, $name_value)

			    _IEFormElementSetValue($oLogin, $sSEOLogin)

				ExitLoop

			 EndIf

			 If string($name_value) <> 'ssvih' Then

				ContinueLoop

				$oPass   = _IEFormElementGetObjByName($oForm, $name_value)

			    _IEFormElementSetValue($oPass, $sSEOPass)

			    ConsoleWrite($name_value & @LF)

			    ExitLoop

			 EndIf
		 Next

 EndFunc

Файл dados.au3
Код:
Global $vSEODomain = 'http://www.seosprint.net/'
Global $vFileConfig = @ScriptDir & '\config.ini'
Global $sSEOLogin  = IniRead($vFileConfig,'seosprint','sSEOLogin ','')
Global $sSEOPass = IniRead($vFileConfig,'seosprint','sSEOPass','')
Global $sSEOPin = IniRead($vFileConfig,'seosprint','sSEOPin','')
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Заполнение полей.
Код:
#include<IE.au3>

$sURL = 'http://www.seosprint.net/'

$oIE = _IECreate($sURL)
;~ $oIE = _IEAttach('SEO sprint')
$oBtn = _IEGetObjById($oIE, 'mnu302')
_IEAction($oBtn, 'click')

$oForm = _IEFormGetCollection($oIE, 0)
$oLogin = $oForm.firstChild.lastChild
$oPassw = $oForm.firstChild.nextSibling.lastChild
_IEFormElementSetValue($oLogin, 'Login')
_IEFormElementSetValue($oPassw, 'Passw')
 

ssvih-miaa

Новичок
Сообщения
41
Репутация
0
Garrett сказал(а):
Заполнение полей.
Код:
#include<IE.au3>

$sURL = 'http://www.seosprint.net/'

$oIE = _IECreate($sURL)
;~ $oIE = _IEAttach('SEO sprint')
$oBtn = _IEGetObjById($oIE, 'mnu302')
_IEAction($oBtn, 'click')

$oForm = _IEFormGetCollection($oIE, 0)
$oLogin = $oForm.firstChild.lastChild
$oPassw = $oForm.firstChild.nextSibling.lastChild
_IEFormElementSetValue($oLogin, 'Login')
_IEFormElementSetValue($oPassw, 'Passw')

Garrett ваш пример не подошел но все равно спасибо за подсказку!
Я на данном этапе решил вопрос немного кривым способом но как факт работает )
Код:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.14.2
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here
#include <dados.au3>
#include <IE.au3>

Local $oIE = _IECreate()

LogIn($oIE) ; Авторизация на сайте

;**** Функция авторизации на сайте ****

Func LogIn($oIE)

	_IENavigate($oIE, $vSEODomain)

    _IELoadWait($oIE)

	$aLink = _IEGetObjById($oIE, "mnu302")

    _IEAction($aLink, "click")

	_IELoadWait($oIE)

    Sleep(3000)

;	$sHTML = _IEDocReadHTML ($oIE)
;    $f = FileOpen(@ScriptDir & "\HTMLVK.html", 2)
;    FileWrite($f, $sHTML)
;    FileClose($f)

;**** Научился заполнять поле логина ****
    Local $oForm = _IEFormGetCollection($oIE, 0)

	$tags = $oIE.document.GetElementsByTagName("input")

	  For $tag in $tags

	  $name_value = $tag.GetAttribute("name")

		 Switch $name_value

			Case 0

			   $oPass   = _IEFormElementGetObjByName($oForm, $name_value)

			   _IEFormElementSetValue($oPass, $sSEOPass)

			Case Else

			   $oLogin  = _IEFormElementGetObjByName($oForm, $name_value)

			   _IEFormElementSetValue($oLogin, $sSEOLogin)

		 EndSwitch

	  Next

	  _IELinkClickByText($oIE, "Я не робот")

 EndFunc

Теперь стоит другая задача а именно с капчей не знаю как решить вопрос, она так же находится в форме авторизации, может кто знает сервис или методы клика reCaptcha, вообще любая информация будет уместной!
Спасибо за ответ!
 

chernobeloe

Новичок
Сообщения
33
Репутация
0
Ребята, а как авторизоваться на facebook-e через запрос?
видел код для вконтакте с куками, не все равно не догоняю что куда и откуда :scratch:
вот что chrome dev tools выдает, как это правильно использовать?
Код:
Request URL:https://www.facebook.com/login.php?login_attempt=1&lwv=110
Request Method:POST
Status Code:302 Found
Remote Address:31.13.92.36:443
Response Headers
content-length:0
content-type:text/html
date:Thu, 19 Nov 2015 10:01:52 GMT
location:https://www.facebook.com/?sk=welcome
p3p:CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
set-cookie:lu=RgDZyqZutBuvkQEIurzZHhKQ; expires=Sat, 18-Nov-2017 10:01:52 GMT; Max-Age=63072000; path=/; domain=.facebook.com; secure; httponly
set-cookie:reg_fb_ref=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=-1447927311; path=/; domain=.facebook.com; httponly
set-cookie:fr=0zmRZVL99iXZUuCs1.AWV4Ylvj7aay5gOmF9H0P-Ri9SU.BWTZ4Q.nC.AAA.0.AWU78B-H; expires=Wed, 17-Feb-2016 10:01:52 GMT; Max-Age=7776000; path=/; domain=.facebook.com; httponly
set-cookie:s=Aa64gfi59k4BxDS4.BWTZ4Q; path=/; domain=.facebook.com; secure; httponly
set-cookie:datr=151NVpTwoo-ln7FMiV0X9VE1; expires=Sat, 18-Nov-2017 10:01:51 GMT; Max-Age=63072000; path=/; domain=.facebook.com; httponly
set-cookie:csm=2; path=/; domain=.facebook.com
set-cookie:xs=133%3AfOWbl80EWaqFAg%3A2%3A1447927311%3A-1; path=/; domain=.facebook.com; secure; httponly
set-cookie:c_user=100010650432821; path=/; domain=.facebook.com; secure
set-cookie:reg_fb_gate=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=-1447927311; path=/; domain=.facebook.com; httponly
set-cookie:wd=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=-1447927310; path=/; domain=.facebook.com; httponly
status:302 Found
version:HTTP/1.1
x-content-type-options:nosniff
x-fb-debug:8b6kTskClT+Jrw6JWUDG9Ck9nqc+YlzRZFla0Hox3bogOYpgfO5AWO8kvL3DZn5Yutf1WKbE9iehHSqfhFU/+A==
x-fb-stats-contexts:www
x-fb-stats-contexts:V3
Request Headers
:host:www.facebook.com
:method:POST
:path:/login.php?login_attempt=1&lwv=110
:scheme:https
:version:HTTP/1.1
accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
accept-encoding:gzip, deflate
accept-language:en-US,en;q=0.8
cache-control:max-age=0
content-length:795
content-type:application/x-www-form-urlencoded
cookie:_js_datr=151NVpTwoo-ln7FMiV0X9VE1; _js_reg_fb_ref=https%3A%2F%2Fwww.facebook.com%2F; _js_reg_fb_gate=https%3A%2F%2Fwww.facebook.com%2F; wd=1024x509
origin:https://www.facebook.com
referer:https://www.facebook.com/?_rdr
upgrade-insecure-requests:1
user-agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2544.0 Safari/537.36
Query String Parameters
view source
view URL encoded
login_attempt:1
lwv:110
Form Data
view source
view URL encoded
lsd:AVo-GbyD
email:[email protected]
pass:superpassword
default_persistent:0
timezone:-480
lgndim:eyJ3IjoxMDI0LCJoIjo2MDAsImF3IjoxMDI0LCJhaCI6NTcwLCJjIjoyNH0=
lgnrnd:020055_R6cz
lgnjs:1447927337
locale:en_US
qsstamp:W1tbMiwxNSwyMiwzNiw1NCw2MCw2Nyw5OSwxMTAsMTM0LDE0NSwxNjEsMTc2LDIzNCwyMzYsMjcxLDI4MiwyODYsMjg3LDI4OCwyOTgsMzAwLDMwMSwzMjAsMzI3LDMzMCwzNDAsMzUxLDM2OCwzODYsNDAzLDQwNCw0MDksNDI0LDQ4NCw1MTUsNTMxLDU5NSw2NjAsNzIxLDcyNiw5MDNdXSwiQVptRXlQQ19MU0puWDFhd0VmYm5jNDRQcmJSVVdYbmVNaTJhaVlPaHd2WTV5QlY0Nnl2OU1JZXRvUURKeEFPMXQ2TExlNlNMOUZtcW8xNEp6MGxhMzFrQjlCTkJzRXAtSS1YQTFMaU1kV0FRRC1kcVpjMmIwWGRGU09VZlc4TDNHVHd0c2p2U3U4SGVXc1E0RGUya0ZNeVNtbm0wUTJaRHpLeUdtR3A0aWh2ajVLaFExeTNORXJ0X2lzWkRKQmd4MXlGbVB3bTJMbWtYZFhrVDgwYTd1LU1nNW5ubDQ0TmdDOGdPbDJvajRLYWhjdFR1Zmo1X2NSMTBDWEwzOGF2SDNQOCJd
 
Верх