我的需求说明如下:
在某网页(例如百度)的一个输入框中输入一个关键字,点击相应的的按钮,网页会返回若干个结果,也可能是返回另一个网页,这全部的过程用一个本地的java应用程序自动来实现,最终获得的结果被本地程序所捕获,这样一个java程序,应当如何来实现呢?希望高手能指出实现的技术步骤,以及可能用到的API,谢谢!
在某网页(例如百度)的一个输入框中输入一个关键字,点击相应的的按钮,网页会返回若干个结果,也可能是返回另一个网页,这全部的过程用一个本地的java应用程序自动来实现,最终获得的结果被本地程序所捕获,这样一个java程序,应当如何来实现呢?希望高手能指出实现的技术步骤,以及可能用到的API,谢谢!
只是对于java的网络应用不是很了解,特此题问
其实这个应用基本的功能还是很简单的,我所不明白的问题是,怎么找到网页上的特定处理模块,从而把数据提交上去,姑且假设网页服务端是用javascript脚本写的处理程序,那么怎么让程序来实现数据定位到服务端的处理模块,同时触发服务端的服务功能,这个我不是很明白,希望各位不吝赐教,谢谢!
比如某个网页会有一个功能,也可能就是一个输入框,让你输入一个名字,比如Duke
然后返回 Hello Duke
重点是怎么让程序来提交这个Duke,以及捕获返回的 Hello Duke
能否给点提示?
然后把程序写在javabean中.
然后通过URL和URIConnection来读取目标网页的字符流我不知道我说错没 不过这个问题你最好自己搜索下 毕竟我没做过 不过意思是这个意思
然后返回 Hello Duke 输入东西 提交 就是发送一个http请求 ,返回东西就是 获得http响应 。建议学习http协议。
然后使用抓包工具 查看http 请求和响应 熟悉它。同时学习 socket编程,就可以实现你要的东西了。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;public class TestURLConnection {
public static final String searchUrl = "http://www.baidu.com/s?wd=#key#"; URLConnection connection = null; public static void main(String[] args) throws IOException {
TestURLConnection result = new TestURLConnection();
System.out.println(result.getReturnString("ok"));
} public String getReturnString(String key) throws IOException {
URL url = new URL(searchUrl.replaceAll("#key#", key));
BufferedReader reader = null;
connection = url.openConnection();
System.out.println(connection.getInputStream());
try {
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String result = "";
String flushStr = null;
while ((flushStr = reader.readLine()) != null) {
result += "\n" + flushStr;
}
return result;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (reader != null) {
reader.close();
}
}
}
}
这是我之前刚写的代码 很不正规 因为我刚看了点URLCONNECTION的API 意思大概是这个意思 不过实际操作还要考虑很多东西 比如编码 和信息过滤