2013-06-24 2 views
7

Я хочу реализовать «робот», который мог бы автоматически заполнять формы. Есть ли решение, когда вы можете заполнить данные на странице, например, form1.html и отправить его, подождать до следующей страницы и отправить данные по form2.html и т. Д. ... В конце концов, он также должен нажать «на кнопку» для получения файла, который создает форма.Создание «робота» для заполнения формы некоторыми страницами в

Я хочу, чтобы этот «робот» использовал какую-то конфиденциальную информацию, поэтому его нельзя использовать с использованием технологий client side.

Я думал о PHP - создавал его как веб-сайт, поэтому вы могли передавать данные на веб-адрес или веб-службу в .Net.

Если это важно, сайт, который я хочу заполнить автоматически, запускается с ASP.NET.

I kind new here ... Может ли кто-нибудь привести примеры или учебные пособия, делающие эту вещь. Если бы существовали некоторые технологии, о которых я не упоминал здесь, чтобы понять это, я был бы рад также их пробовать.

+0

Вы можете застроить HTTP запросы по своему усмотрению. Запросите страницу, проанализируйте ее и отправьте запрос ответа с данными формы. По крайней мере, так работает ваш браузер. – lupz

ответ

8

Формирует работу путем размещения данных, поэтому вместо создания робота, который будет вводить что-то в каждое поле и нажимать кнопку «Отправить», вы можете просто указать POST данные на сервер.

Сначала возьмите имена полей формы и форму action.

Тогда CURL:

//set POST variables 
$url = 'http://domain.com/get-post.php'; 
$fields = array(
         'lname' => urlencode($last_name), 
         'fname' => urlencode($first_name), 
         'title' => urlencode($title), 
         'company' => urlencode($institution), 
         'age' => urlencode($age), 
         'email' => urlencode($email), 
         'phone' => urlencode($phone) 
       ); 

//url-ify the data for the POST 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

//execute post 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 

Отрывок из this site.

+0

Я заметил, что вход декодирован, а затем отправлен на сервер, поэтому я не могу отправить POST с самого начала, и мне нужно пройти через форму – Dima

+0

. Вероятно, они используют предотвращение атак CSRF, а не то, что вы можете сделать с этим, кроме использования фактический робот, загружающий веб-страницу – Adam

9

Использование Selenium.

«Selenium автоматизирует браузеры, вот и все. То, что вы делаете с этой мощью, полностью зависит от вас. В первую очередь это касается автоматизации веб-приложений для целей тестирования, но, конечно, не ограничивается этим. может (и должен!) также быть автоматизирован ».

См. Примеры here.

enter image description here