URLConnection con = url.openConnection(); con.connect(); java.io.InputStream is = con.getInputStream(); java.io.InputStreamReader isr = new java.io.InputStreamReader(is,"utf-8");
java.io.BufferedReader br = new java.io.BufferedReader(isr); String str = null;//读取每一行的字符串 StringBuffer weatherStr = new StringBuffer("");//天气预报部分的字符串 int begin = 0;//开始截取的字符串的行数 int line = 0;//读取字符串的行数 int divcount = 0;//div匹配的对数 while((str = br.readLine()) != null){ if(str.indexOf("<div class=\"weatherYubao\" id=\"7d\">")> -1){//截取字符串开始,记录位置 weatherStr.append(str); begin = line; divcount = 1;//div匹配的对数开始 }else{ if(begin > 0){//截取字符串已经开始 weatherStr.append(str); if(str.indexOf("<div") > -1){//有新的div层开始 divcount ++; } if(str.indexOf("</div>")>-1){//有div层结束 divcount--; } if(divcount == 0){//div匹配的对数完成 break; } } }
这个地址提供的是windows中执行的吧,不能跨平台的吧。
我是这样用的。
我是用servlet来实现的。是这样的。
String urls = request.getParameter("url");
URL url = new URL(urls);
URLConnection con = url.openConnection();
con.connect();
java.io.InputStream is = con.getInputStream();
java.io.InputStreamReader isr = new java.io.InputStreamReader(is,"utf-8");
java.io.BufferedReader br = new java.io.BufferedReader(isr);
String str = null;//读取每一行的字符串
StringBuffer weatherStr = new StringBuffer("");//天气预报部分的字符串
int begin = 0;//开始截取的字符串的行数
int line = 0;//读取字符串的行数
int divcount = 0;//div匹配的对数
while((str = br.readLine()) != null){
if(str.indexOf("<div class=\"weatherYubao\" id=\"7d\">")> -1){//截取字符串开始,记录位置
weatherStr.append(str);
begin = line;
divcount = 1;//div匹配的对数开始
}else{
if(begin > 0){//截取字符串已经开始
weatherStr.append(str);
if(str.indexOf("<div") > -1){//有新的div层开始
divcount ++;
}
if(str.indexOf("</div>")>-1){//有div层结束
divcount--;
}
if(divcount == 0){//div匹配的对数完成
break;
}
}
}
line ++;
}
br.close();
代码不可以
我想可以试一下修改HTTP请求的头来绕过限制
$.ajax({
url:'http://www.google.com/ig/api?hl=zh-cn&weather=Beijing',
type: 'POST',
dataType: 'xml',
success:function(xml){
var root = $('weather',xml);
alert(root[0].innerHTML);
}
});
$.ajax({
url:'http://www.google.com/ig/api?hl=zh-cn&weather=Beijing',
type: 'POST',
dataType: 'xml',
success:function(xml){
var xmldoc=loadXML(xml);//loadXML方法,上面链接有介绍
var root=$('weather',xmldoc);
alert(root[0].childNodes.length);
//遍历root[0].childNodes做其它处理...
}
});