(续) java 取WEB资源的内容
作者:独钓寒江月
《java 取WEB资源的内容》是给菜鸟入门用的,起因是:与我接口的外单位的做手机游戏的兄弟,需要连接到我的服务器取我给他的内容,当然是使用我定义的接口,通过HTTP GET或POST的方式。因为会话管理的原因,他不会处理,造成除了登录,其他的数据都不能正常接收。故我做了此测试程序,主要是会话管理部分。
有的同学看了前篇后,都想骂人了。
今将取得的普通HTTP返回做一简单分析,方法都是类似的。
本测试目的是从迅雷的搜索中取出感兴趣的部分。
另:在前篇中(GetHttp),String r 应该使用 StringBuilder。当然,在while中就要用r.append了。
抛砖引玉......
<code>
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ParseWeb
{
public void getAll(String url,int maxNum,String keyWord)
{
long stime = System.currentTimeMillis();
GetHttp aa = new GetHttp();
String r = aa.getValue(url);
aa = null;
String regex="<tr><td(.+?)</td><td(.+?)><a(.+?) href=\"(.+?)\"(.+?)</td><td>(.+?)</td><td>(.+?)</td><td>(.+?)</td><td>(.+?)</td><td>(.+?)</td><td>(.+?)</td></tr>";
Pattern pattern=Pattern.compile(regex);
Matcher matcher=pattern.matcher(r);
int ii = 0;
while(matcher.find())
{
String uurl = matcher.group(4);
String allSize = matcher.group(8);
String format = matcher.group(9);
System.out.println("");
System.out.println("`````````````````````````````");
// System.out.println(matcher.group(1));
// System.out.println(matcher.group(2));
// System.out.println(matcher.group(3));
System.out.println(matcher.group(4));
// System.out.println(matcher.group(5));
// System.out.println(matcher.group(6));
// System.out.println(matcher.group(7));
System.out.println(matcher.group(8));
System.out.println(matcher.group(9));
// System.out.println(matcher.group(10));
// System.out.println(matcher.group(11));
System.out.println("`````````````````````````````");
System.out.println("");
//do something
ii ++;
}
System.out.println(" [ getAll ] search result count : " + ii);
long etime = System.currentTimeMillis();
System.out.println(".########################### getall time : " + (etime-stime));
return ;
}
public static void main(String[] args ) throws Exception
{
long stime = System.currentTimeMillis();
String keyWord = "刘德华";
ParseWeb pw = new ParseWeb();
for(int i=1;i<3;i++)
{
String url = "http://movie.gougou.com/search?search=" + keyWord + "&restype=-1&page=" + i + "&id=10000000&ty=0";
pw.getAll(url, 0, keyWord);
}
pw = null;
long etime = System.currentTimeMillis();
System.out.println(".########################### run time : " + (etime-stime));
}
}
</code>