创建一个“机器人”来填充带有一些页面的表单

时间:2013-06-24 07:41:27

标签: php .net web-services bots

我想实现一个可以自动填充表格的'机器人'。 是否有解决方案可以填写页面上的数据,例如form1.html并提交,等到下一页并提交form2.html上的数据,依此类推...... 最后,它还应该“点击”按钮以获取表单创建的文件。

我希望这个'机器人'会使用一些机密信息,因此无法使用client side技术完成。

我在考虑PHP - 将其构建为网站 - 网络服务,因此您可以将数据传输到网址或.Net中的网络服务。

如果重要,我想自动填写的网站会以ASP.NET运行。

我在这里有点新意见......任何人都可以提供一些示例或教程来做这件事。如果存在一些我在这里没有提到的技术来实现它,我也很乐意尝试它们。

2 个答案:

答案 0 :(得分:9)

表单通过发布数据来工作,因此您可以只将POST数据发送到服务器,而不是创建一个可以在每个字段中输入内容的机器人,而只需action数据到服务器。

首先获取表单字段名称和表单的//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);

然后CURL:

{{1}}

来自this site的摘录。

答案 1 :(得分:9)

使用Selenium

“Selenium自动化浏览器。就是这样。你用这种能力做什么完全取决于你。主要是为了测试目的自动化Web应用程序,但当然不仅限于此。无聊的基于Web的管理任务可以(也应该!)也是自动化的。“

参见示例here

enter image description here