Java 如何使用自动脚本将输入传递到网页

Java 如何使用自动脚本将输入传递到网页,java,php,Java,Php,如何使用自动脚本将输入传递到php网页,也就是说,我只想知道如何使用脚本将参数传递到文本字段。例如,将输入传递到网页的用户名和密码字段,然后按下提交按钮(脚本也是如此) 喜欢的语言:JAVA试试Selenium。Selenium非常擅长自动化web浏览器 还提供对Java的纯支持。但不仅如此 当谈到自定义方法时,请参阅 String urlParameters = "param1=a&param2=b&param3=c"; String request = "http://ex

如何使用自动脚本将输入传递到php网页,也就是说,我只想知道如何使用脚本将参数传递到文本字段。例如,将输入传递到网页的用户名和密码字段,然后按下提交按钮(脚本也是如此)


喜欢的语言:JAVA

试试Selenium。Selenium非常擅长自动化web浏览器

还提供对Java的纯支持。但不仅如此

当谈到自定义方法时,请参阅

String urlParameters = "param1=a&param2=b&param3=c";
String request = "http://example.com/index.php";
URL url = new URL(request); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection();           
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setInstanceFollowRedirects(false); 
connection.setRequestMethod("POST"); 
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
connection.setRequestProperty("charset", "utf-8");
connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
connection.setUseCaches (false);

DataOutputStream wr = new DataOutputStream(connection.getOutputStream ());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
connection.disconnect();

source()

您可以使用Apache HTTPClient-请参见以下示例:

这允许您模拟将完全填写的表单直接提交到目标页面并获取结果


请记住,调用后,您必须抓取会话cookie并将其存储在响应中,然后将其重新提交到您要“访问”的以下页面以保持“登录”

如果您的网页使用GET方法接受数据(即从URL),只需连接到提供您要传递的数据的网页即可:


如果网页使用POST,事情会变得有点复杂:您必须在页眉中包含所有数据(根据POST方法的要求)伪造一个适当的HTML请求。

我想展示一下如何将输入传递到HTML。我通常使用python向需要输入数据的页面发送请求。在此之前,您需要知道是否需要提供web cookie,如果需要,请复制cookie,如果需要登录,否则不需要,请检查。完成后,您需要知道输入区域的字段名,因为您将使用它们来使用脚本发布或获取数据。下面是使用示例

import urllib
import urllib2
import string
headers = {'Cookie': 'You cookies if you need'}
values = {'form_name':'sample text', 'submit':''}
data = urllib.urlencode(values)
req = urllib2.Request('website where you making request to',data,headers)

opener1 = urllib2.build_opener()


page1=opener1.open(req)
#OPTIONAL
htmlfile=page1.read()

fout = open('MYHTMLFILE.html', "wb")
fout.write(htmlfile)
fout.close()

我们是否可以将数据传递到web页面,即使用post方法传递数据?