search-demo演示了如何利用Java来调用百度搜索和谷歌搜索,更多细节请到github上查看search-demo
package org.apdplat.demo.search;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import .URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.cyberneko.html.parsers.DOMParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import com.sun.org.apache.xpath.internal.XPathAPI;
import javax.xml.transform.TransformerException;
import org.w3c.dom.DOMException;
import org.xml.sax.SAXException;
public class BaiduSearcher {
private static final Logger LOG = LoggerFactory.getLogger(BaiduSearcher.class);
public static List parse(String url, String xpathExpression) {
InputStream in = null;
try {
in = new URL(url).openStream();
return parse(in, xpathExpression);
} catch (Exception e) {
LOG.error("错误", e);
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
LOG.error("错误", e);
}
}
}
return null;
}
public static List parse(InputStream in, String xpathExpression) {
return parse(in, xpathExpression, "UTF-8");
}
public static List> parseMore(InputStream in, String xpathExpression) {
return parseMore(in, xpathExpression, "UTF-8");
}
public static List> parseMore(InputStream in, String xpathExpression, String encoding) {
DOMParser parser = new DOMParser();
List> list = new ArrayList<>();
try {
// 设置网页的默认编