3

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

喜欢的语言:JAVA

4

4 回答 4

6

试试硒。Selenium 擅长自动化 Web 浏览器。

http://seleniumhq.org/

还对 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();

来源(Java - 通过 POST 方法轻松发送 HTTP 参数

于 2012-11-06T22:31:57.227 回答
1

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

http://www.mysite.com/mypage.html?data0=data0,data1=data1

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

于 2012-11-06T22:36:07.253 回答
0

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

http://hc.apache.org/httpclient-3.x/methods/post.html

这使您可以模拟将完整填写的表单直接提交到目标页面并获取结果。

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

于 2012-11-06T22:32:01.423 回答
-1

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

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()
于 2012-11-09T22:02:20.173 回答