2015-04-11 3 views
1

Часть моей работы - зарегистрировать несколько новых пользователей на стороннем игровом сайте. Я написал сценарий, используя ahk, используя curl, он открывает браузер и петли, заполняя регистрационную форму и отправляя ее, однако сайт не устраивает это, поскольку иногда это время или жалуется на регистрацию слишком часто в короткий промежуток времени ,скрипт для регистрации на стороннем сайте

Я ищу повторить сценарий, не открывая браузер, и я не уверен, что использовать, php с curl, JavaScript?

У кого-нибудь есть хорошие предложения и рекомендации? Мне нужно что-то легкое и быстрое. Любая помощь приветствуется.

ответ

1

Недавно я сделал пост о WinHttpRequest COM и объяснил, как сделать логины с ним: How to do logins using the WinHttpRequest COM?

Если вы перепроектировать ваш целевой сайт немного можно изменить предоставленный код для отправки данных, необходимых для регистрации сервер.

Это вероятно, будет выглядеть примерно так:

;Prepare our WinHttpRequest object 
HttpObj := ComObjCreate("WinHttp.WinHttpRequest.5.1") 
;HttpObj.SetProxy(2,"localhost:8888") ;Send data through Fiddler (for debugging) 
HttpObj.SetTimeouts(6000,6000,6000,6000) ;Set timeouts to 6 seconds 
;HttpObj.Option(6) := False ;disable location-header rediects 

;Set our URLs 
registrationURL := "http://yoursite/registerOrWhatever/" 

;Set our registration data 
username := "Samah" 
email := "[email protected]" 
password := "mySecretPassword" 
acceptTOS := 1 
receiveNewsLetter := 0 

registrationBody := "username=" username "&email=" email "&repeatEmail=" email "&password=" password "&repeatPassword=" password "&TOSagree=" acceptTOS "&weeklyNewsLetter=" receiveNewsLetter 

HttpObj.Open("POST",registrationURL) 
HttpObj.SetRequestHeader("Content-Type","application/x-www-form-urlencoded") 
HttpObj.Send(registrationBody) 

If (HttpObj.status == 200 && InStr(HttpObj.ResponseText,"You will shortly receive an email with an activation link.")) 
    MsgBox, User successfully registered. 
Else 
    MsgBox, The registration failed! 
+0

Forvin, TY. Я использовал ваш код и редактировал элементы страницы, как вы предлагали, однако я получаю статус ответа 404. В вашей примерной ссылке, заходящей на сайт ahk, у вас есть URL-адрес сайта и URL-адрес для входа, установите наши URL-адреса loginSiteURL: = & loginURL: =, хотя здесь есть только URL-адрес для формы входа в систему, возможно, это проблема ? Мне удалось получить тело ответа. Регистрационная форма представляет собой два разных игровых сервера. EDIT: Я добавил ссылку в атрибуте action формы. Я получаю «Пользователь успешно зарегистрирован» сейчас, но когда я проверяю сайт, пользователь не существует. – Sam

+0

Я нашел еще одну ссылку для регистрации, однако форма находится в javascript и скрыта по умолчанию (Login показывает, Register - это следующая вкладка), как я могу заполнить эту скрытую форму? используя идентификаторы, возвратил успешный результат, но пользователь все еще не регистрируется. – Sam

+0

Хитрость заключается не в том, чтобы не смотреть на форму, а на то, что сайт html фактически отправляет на сервер. Скачайте программу Fiddler и запустите ее. В правой части окна выберите вкладку «Инспекторы», а затем выберите вкладку «Вебформы», которая отображается ниже. В самом низу слева от окна нажмите до тех пор, пока не появится сообщение «Захват». Теперь откройте свой браузер и зарегистрируйте нового пользователя на своем сайте. Вернитесь к Fiddler и в левой части окна, ищите запрос в списке, в котором есть кусок пейджера с зеленой стрелкой на нем как значок. Щелкните по нему, и параметры сообщения появятся. – Forivin

Смежные вопросы