最近在遇到一个问题:
我通过java代码连接百度接口搜索内容代码如下:
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String key = "java"; //查询关键字
key = URLEncoder.encode(key, "gb2312");
URL u = new URL("http://www.baidu.com.cn/s?wd=" + key);
URLConnection conn = u.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "gb2312"));
String str = reader.readLine();
while (str != null) {
System.out.println(str);
str = reader.readLine();
}
reader.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
问题是:我搜到的内容我需要过滤,我只要在页面中的一条一条的内容,比如:
上面的代码搜索出来的内容:
1. java.com: Java 与您
立即下载适用于您的桌面计算机的 Java 软件!
www.java.com/ 2011-4-21 - 百度快照
2.JAVA - 手机软件
适用机型:Java 赶集生活是由中国最大的本地生活信息门户赶集网(www.ganji.com)最新出品的一款永久免费的机 软件: 【主要功能】: 1、周边信息实时掌握:...
soft.shouji.com.cn/sort/java.jsp 2011-8-25 - 百度快照
就这样,我只要这样的数据,并且还要再内容前面加上一个checkbox,方便我以后操作他们,我该怎么办?
各位帮忙看看!小弟很急,
class=\"result 这个字符串是判断是否是结果的依据。
package com.resource;
import junit.framework.TestCase;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
Time: 10:03 AM
*/
public class FilterContentTest extends TestCase {
public void testFilterContent() throws Exception {
String key = "java";
key = URLEncoder.encode(key, "gb2312");
URL u = new URL("http://www.baidu.com.cn/s?wd=" + key);
URLConnection conn = u.openConnection();
InputStream inputStream = conn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "gb2312");
BufferedReader reader = new BufferedReader(inputStreamReader);
String str = reader.readLine();
List results = new ArrayList();
while (str != null) {
if (str.contains("class=\"result")) {
String nextStr = reader.readLine();
String result = str + nextStr;
results.add(result);
}
str = reader.readLine();
}
for (String result : results) {
System.out.println(result);
}
reader.close();
}
}