also am einfachsten für Webbots finde ich PHP oder Delphi. Am besten jedoch finde ich Java oder Node.js, allein wenn du es plattformunabhängig haben willst. Für RAT's und Co. ist Java natürlich unbrauchbar aber für deine Zwecke ist das super. Es ist Strukturiert, relativ einfach und es gibt jede menge Libs für deine Zwecke. die beste Lib ist "Selenium" aber wenn du es versteckt haben willst kann ich dir "htmlUnit" empfehlen. Die beiden Libs arbeiten nicht mit einfachen Requests sondern sind Programmgesteuerte Browser. Ich bin mir nicht sicher ob man Selenium auch im Hintergrund ausführen kann.
---------- Post added at 00:21 ---------- Previous post was at 00:12 ----------
Hier sind ein paar Beispiele für dich zum Vergleich:
PHP
PHP-Code:
//extract data from the post
//set POST variables
$url = 'http://domain.com/get-post.php';
$fields = array(
'lname' => urlencode($_POST['last_name']),
'fname' => urlencode($_POST['first_name']),
'title' => urlencode($_POST['title']),
'company' => urlencode($_POST['institution']),
'age' => urlencode($_POST['age']),
'email' => urlencode($_POST['email']),
'phone' => urlencode($_POST['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);
Delphi
Code:
var
server: TIdHttp;
Parameters: TStringList;
Response: TStringStream;
begin
response := TStringStream.Create;
Parameters := TStringList.Create;
Parameters.Add('param1=Value1');
Parameters.Add('param2=عربي/عرب');
Parameters.Add('param3=Value3');
Server.Post('http://www.example.com/page.php',Parameters,response);
end;
Node.js
Code:
var request = require('request');
request.post(
'http://www.yoursite.com/formpage',
{ form: { key: 'value' } },
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
}
);
von Selenium kann ich kein Beispiel posten, da dieser Ansatz komplett anders funktioniert.