2010-08-21 12:08:01
sedo
View Mode: Normal | Article List
May, 2006 | 1

Java Spider/抓取or采集网页内容

[ 2006-05-31 21:10:18 | Author: 振华 ]
如果机房够多,可以写个循环,采集Google、Yahoo、baidu
不需要Google的API,也没有1000次限制,这个抓取就和实际开启浏览器访问一样。如果频繁访问google也有罪,那就没话说了
另外Google和Yahoo的编码方式有些复杂,Google采用Unicode的通用编码,中文的处理方式和百度不同,百度可以轻松抓取到相应的结果,如果要获得google的关键词结果数,则要和它的编解码方式匹配才可以,百度的就没这个问题。

只是原理上实现,对网页编码没有认真处理,所以抓取一些页面时会出现乱码的情况。
 public StringBuffer getResponse(String address) {
 StringBuffer list = new StringBuffer();

 try {
 url = new URL(address);
 urlconn = (java.net.HttpURLConnection) url.openConnection();
...

Read More...

Google查询请求参数

[ 2006-05-31 20:29:50 | Author: 振华 ]
Google查询请求参数
变量
描述
q $query (您的请求) 用于搜索的字符串
Start 从0 到结果总数 指定搜索的结果显示开始于某一个点。实际上这个就是google用来分页的参数了。google没有page这个参数
num/maxResults 1 -- 100 每页显示的结果数
filter O or 1 是否显示过滤相似结果,1为是,0为否。如果为1,google将会让你在搜索结果的最下面选择将省略的结果纳入搜索范围后再重新搜索
restrict "限制代码".例子:
...

Read More...

Google 的中文编码方式

[ 2006-05-31 20:13:49 | Author: 振华 ]
 /**
 * Google 中文URL参数处理
 * @param s
 * @return
 */
 public static String getUtf8Str(String s) {
 String ret = null;
 try {
 ret = java.net.URLEncoder.encode(s, "utf-8");
 } catch (UnsupportedEncodingException ex) {
 }
 return ret;
 }

 /**
 * 对UTF-8进行中文解码
 * @param s
 * @return
 */
 public static String getStrUtf8(String s) {
 String ret = null;
 try {
 ret = java.net.URLDecoder.decode(s, "utf-8");
...

Read More...

转码

[ 2006-05-31 18:09:19 | Author: 振华 ]
Java 转码
 public static String convert(String str) {
 String tmp;
 StringBuffer sb = new StringBuffer(1000);
 char c;
 int i, j;
 sb.setLength(0);
 for (i = 0; i < str.length(); i++) {
 c = str.charAt(i);
 if (c > 255) {
 sb.append("\\u");
 j = (c >>> 8);
 tmp = Integer.toHexString(j);
 if (tmp.length() == 1)
 sb.append("0");
 sb.append(tmp);
...

Read More...
1