站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题为什么:java中的URL类无法创建这个对象 java高手请进来!!!

为什么:java中的URL类无法创建这个对象 java高手请进来!!!

摘要: 为什么:java中的URL类无法创建这个对象 java高手请进来!!!


import java.io.*;
import java.net.*;
class GetURL
{
static protected void getURL(String u)
{
URL url;
InputStream is;
InputStreamReader isr;
BufferedReader r;
String str;

try
{
System.out.println("Reading URL: " + u );
url = new URL(u);
is = url.openStream();
isr = new InputStreamReader(is);
r = new BufferedReader(isr);
do
{
str = r.readLine();
if(str!=null)
System.out.println( str );
} while( str!= null );
}
catch(MalformedURLException e)
{
System.out.println("Must enter a valid URL");
}
catch(IOException e)
{
System.out.println("Can't connect");
}
}

static public void main(String args[])
{
//getURL("http://www.sohu.com"); 可以执行
getURL("http://www.google.com/search?hl=zh-CN&q=%E8%AE%A1%E7%AE%97%E6%9C%BA&lr=");
}
}



被google 屏蔽了吧

java.io.IOException: Server returned HTTP response code: 403 for URL: http://www
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon
at java.net.URL.openStream(URL.java:913)
at GetUrl.getURL(GetUrl.java:18)


没有这么简单的,如果真正是屏蔽了,就请分析一下google屏蔽技术吧,我坚信是可以通过程序获得google的html源代码的,这正如浏览器可以获得google查询页面的源代码一样。!!!


URL url = new URL("http://www.google.com/search?hl=zh-CN&q=gfs&btnG=Google+%E6%90%9C%E7%B4%A2&lr=lang_zh-CN%7Clang_zh-TW");
URLConnection uc = (HttpURLConnection)url.openConnection();
uc.setRequestProperty("User-agent","IE/6.0");
InputStream in = uc.getInputStream();

BufferedReader buff = new BufferedReader(new InputStreamReader(in));

这样就可以读取它的内容了



接分


IT菜鸟正解,openConnection后再得到InputStream,按正常网络连接步骤走就完全可以得到html页面代码,不过“uc.setRequestProperty("User-agent","IE/6.0");”很重要,java用来模拟登陆,当然,你改个Mozilla/4.0,也可以,跟自己机器无关


smlovetp(IT菜鸟)的正解,但是还有一事不明白,为什么有的需要进行setRequestProperty的设置,比如说google下面的查询页面,而有的不需要,比如说http://www.sohu.com主页面。是跟web服务器相关吗?还是跟html里面的代码是相关的???


↑返回目录
前一篇: 请问一个以WEBLOGIC为应用服务器在JSP中使用CSS如何部署的问题.
后一篇: 提示:软件包javax.servlet.*