抓取其他网页数据的问题,请大家帮忙给点思路或示例,(挺急的~在线等,解决立即结贴) 现在要做一个查询模块,我在自己的工程里输入两个参数然后提交到另一个工程里,通过这两个参数查询出来一些数据,然后我在把这些查询出来的数据获取到并显示到我自己的网页里。头一次接触 有点迷茫 望有人能帮助下 谢了~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以直接提交,不知道是否满足你action="http://xxx.xxx.xxx.xxx:8080/xxx.do?param1=aaa¶m2=bbb" 要提交的网站是用POST方式传参 而且我提交完后还要获取查询出来的数据 并在我自己的网站上显示呢但还是谢谢你的提示 :) 那就用流来读取 发个post请求就可以了或者用httpclient 发post请求然后读取返回结果 加到自己的页面就可以了 怎么我觉得你说的就是webservice或RMI阿? 我现在能提交过去 但另一个网站貌似获取不到我的参数,查不出来任何东西啊。麻烦哪位能给个代码示例让我借鉴下。谢谢了 是要用POST方式传参的 这样的提交 好想你得不到他返回的response对象哦,应该是返回XML流吧? 应该一样的document.forms[0].action = "http://www.163.com";document.forms[0].submit();这样就提交到163.表单里的参数也post过去了你是要返回页面还是数据,如果仅是返回个页面显示的话,这样可以,如果要对数据进行处理的话用httpclient更简单一些 To:Landor2004 好的 谢谢 我去研究下 嘿嘿~ 是公用一个session么,要是的话在xml中设置response不知道能不能帮上你 http://www.java2000.net/p2875参考这个看看 还有这个,模拟POST提交的 http://www.java2000.net/p302 不行呀 还是查询不出来数据 参数没问题啊 在要提交的网站里手动输入这两个参数是可以查询到数据的 下面是我传提交的代码 各位帮忙看下有问题没:<form action="http://www.yjgajj.com/wfcx.asp" method="POST" name="cxform"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><input type="text" name="leibie" value="1"/></td></tr><tr> <td><input type="text" name="号牌号码" value="吉H"/></td></tr><tr> <td><input type="submit" value="提交"/></td></tr></table></form>http://www.yjgajj.com/wfcx.asp这个网站上参数的name和我这的是一样的啊 为什么获取不到呢 TO:java2000_net 你给的这两个地址我都打不开 TO:java2000_net我看了你给我的参考代码:URL url = new URL(".......");//这里应该是我要打开的URL地址HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setDoOutput(true); // POST方式 con.setRequestMethod("POST"); OutputStream os = con.getOutputStream(); // 输出流,写数据 os.write("..........".getBytes()); //这里是什么 没弄明白 头一次用这个东西 嘿嘿BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream())); // 读取结果 String line; while ((line = reader.readLine()) != null) { System.out.println(line); }没弄明白 参数是怎么传过去的 期待指点 我说说我的思路 不知道对不对URL url = new URL("http://www.163.com?tyep=a"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); 我觉得这里应该返回一个HTTP头信息 和 一个返回的流对象你可以根据这个http头信息中的MIME 得到返回文件的类型要是xml 你就方便了 看看格式 然后解析xml 返回到你页面显示要是html 你也得看看格式 然后解析html 提取内容 到你页面显示数据 http://www.yjgajj.com/wfcx.asp你这是提交到这个页面呀,你要模拟查询操作,你在那个个页面点击查询触发的是什么url这里就应该是什么 看到有这样的传参方式connection.setDoOutput(true); OutputStreamWriter out = new OutputStreamWriter(uc.getOutputStream(), "8859_1"); out.write("username=bob&password="+password+""); out.flush(); out.close(); 郁闷 就是传不过去 莫非是跟参数名是中文有关?我的程序是JSP的页面 对方的网站是用ASP做的 其中有一个参数的name是中文的 值也是中文的 哎!头都大了 中文参数使用String param = "name=中文;";param = URLEncoder.encode(param,"UTF-8")); // 如果对方是GBK,就改成 GBK然后再out.write(param.getBytes()) 就行了。 楼主要抓取的是要会员登录的那种网站吧,java里有个实现构造form的方法,你到网上找找看,应该可以找到的, import org.apache.commons.httpclient.*;import org.apache.commons.httpclient.params.*;import org.apache.commons.httpclient.methods.*;import org.apache.commons.httpclient.cookie.*;要用到这几个包,只能告诉你这些,请谅解,得到内容的方法:当用上面的资料构造好form后,进入页面,再用类似这里的方法:http://blog.csdn.net/rascalboy520/archive/2008/06/02/2503998.aspx 之前没有太明白楼主的意思,刚写了个,也许会给你点思路,<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> test my search </TITLE><meta http-equiv="Content-Type" content="text/html; charset=utf8" /><SCRIPT LANGUAGE="JavaScript"><!--function aa_go(){ document.charset="utf-8"; document.fzhulang.key.value = document.getElementById("thekeyword").value; document.fzhulang.submit();}//--></SCRIPT></HEAD><BODY>关键字:<input type="text" id="thekeyword" size=25 value="" onFocus="this.value='';" onKeyPress="gogo()"> <input name="aa" type="button" onclick="aa_go()" value="提交" > <form action="http://www.zhulang.com/search.php" method="post" name="fzhulang" target="_zhulang"> <input type="hidden" name="sType" value="a1"> <input type="hidden" name="key" value=""> <input name="提交" type="hidden" value="搜索"/> </form><p><iframe name="_zhulang" width="970" height="400" ></iframe></p></BODY></HTML> 用pattern,专业抓数据,要学一下 , 和java 差不多 哪位大侠给讲讲。。hibernate的一对多和左连接。。。 再问,Apache2.2.4与Tomcat6.0整合问题??? jsp页面编码设为utf-8,但用ActionForm收到的确是乱码 Applet中显示图片 有没有见过jsp中这样一个写法 如何將數據庫的資料導入到EXCEL 关于从MYSQL数据库读中文的问题 JSP简单的问题:Form中的提交的Propery Name的大小写问题?100分赠送!!! resin几问…… BBS-CS[天乙社区]--开放源码的JSP社区 spring配置jndi数据源!!! 判断名称是否重复
action="http://xxx.xxx.xxx.xxx:8080/xxx.do?param1=aaa¶m2=bbb"
应该一样的
document.forms[0].action = "http://www.163.com";
document.forms[0].submit();
这样就提交到163.表单里的参数也post过去了
你是要返回页面还是数据,如果仅是返回个页面显示的话,这样可以,如果要对数据进行处理的话用httpclient更简单一些
好的 谢谢 我去研究下 嘿嘿~
<form action="http://www.yjgajj.com/wfcx.asp" method="POST" name="cxform">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input type="text" name="leibie" value="1"/></td>
</tr>
<tr>
<td><input type="text" name="号牌号码" value="吉H"/></td>
</tr>
<tr>
<td><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
http://www.yjgajj.com/wfcx.asp这个网站上参数的name和我这的是一样的啊 为什么获取不到呢
你给的这两个地址我都打不开
我看了你给我的参考代码:
URL url = new URL(".......");//这里应该是我要打开的URL地址
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true); // POST方式
con.setRequestMethod("POST");
OutputStream os = con.getOutputStream(); // 输出流,写数据
os.write("..........".getBytes()); //这里是什么 没弄明白 头一次用这个东西 嘿嘿
BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream())); // 读取结果
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
没弄明白 参数是怎么传过去的 期待指点
HttpURLConnection con = (HttpURLConnection) url.openConnection(); 我觉得这里应该返回一个HTTP头信息 和 一个返回的流对象你可以根据这个http头信息中的MIME 得到返回文件的类型要是xml 你就方便了 看看格式 然后解析xml 返回到你页面显示要是html 你也得看看格式 然后解析html 提取内容 到你页面显示数据
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(uc.getOutputStream(), "8859_1");
out.write("username=bob&password="+password+"");
out.flush();
out.close();
String param = "name=中文;";
param = URLEncoder.encode(param,"UTF-8")); // 如果对方是GBK,就改成 GBK然后再
out.write(param.getBytes()) 就行了。
java里有个实现构造form的方法,你到网上找找看,应该可以找到的,
import org.apache.commons.httpclient.params.*;
import org.apache.commons.httpclient.methods.*;
import org.apache.commons.httpclient.cookie.*;
要用到这几个包,只能告诉你这些,请谅解,
得到内容的方法:当用上面的资料构造好form后,进入页面,再用类似这里的方法:
http://blog.csdn.net/rascalboy520/archive/2008/06/02/2503998.aspx
<HTML>
<HEAD>
<TITLE> test my search </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<SCRIPT LANGUAGE="JavaScript">
<!--
function aa_go(){
document.charset="utf-8";
document.fzhulang.key.value = document.getElementById("thekeyword").value;
document.fzhulang.submit();
}
//-->
</SCRIPT>
</HEAD>
<BODY>
关键字:<input type="text" id="thekeyword" size=25 value="" onFocus="this.value='';" onKeyPress="gogo()">
<input name="aa" type="button" onclick="aa_go()" value="提交" >
<form action="http://www.zhulang.com/search.php" method="post" name="fzhulang" target="_zhulang">
<input type="hidden" name="sType" value="a1">
<input type="hidden" name="key" value="">
<input name="提交" type="hidden" value="搜索"/>
</form>
<p><iframe name="_zhulang" width="970" height="400" ></iframe></p>
</BODY>
</HTML>