9

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

我希望这个“机器人”会使用一些机密信息,所以不能使用client side技术来完成。

我正在考虑PHP- 将它构建为一个网站 - 网络服务,这样你就可以将数据传输到一个网址,或者.Net.

如果它很重要,我想自动填充的网站是用ASP.NET.

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

4

2 回答 2

10

表单通过发布数据来工作,因此您可以只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);

来自这个网站的片段。

于 2013-06-24T07:52:45.307 回答
9

使用

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

请参阅此处的示例。

在此处输入图像描述

于 2013-06-24T07:53:33.890 回答