方法一:
方法二:
/**
* 检查从页面上提取出的url是不是一个正确的url // *
*
* @param parentURL
* @param link
* @return
*/
private boolean checkLink(URL parentURL, String link) {
boolean linkFlag = true;
link = link.toLowerCase();
if (link.length() < 5) {
linkFlag = false;
} else {
String newUrlStr = null;
try {
URL newUrl = new URL(parentURL, link);
newUrlStr = newUrl.toString();
if (newUrlStr.indexOf("+") > -1 || newUrlStr.length() < 10
|| newUrlStr.indexOf("\"") > -1
|| newUrlStr.indexOf("#") > -1
|| newUrlStr.indexOf("javascript") > -1
|| newUrlStr.indexOf("'") > -1
|| !newUrlStr.startsWith("http://")
|| newUrlStr.substring(6).indexOf("http://") > -1
|| newUrlStr.length() > 255
) {
return false;
}
} catch (MalformedURLException e) {
System.err.println(parentURL.toString() + "--->" + link);
linkFlag = false;
}
}
return linkFlag;
}
方法二:
/**
* 判断一个从页面上提取出的link,看是否符合爬取条件,若是符合,返回这个link
*
* @param parentURL
* @param link
* @return
*/
private String getNewLink(URL parentURL, String link) {
String newUrlStr = null;
String returnStr = null;
URL newUrl = null;
if (null != link && !"".equals(link.trim())) {
if (link.indexOf("\\") > -1) {
link = link.toLowerCase().replace("\\", "/");
}
if (link.indexOf("javascript") < 0 && link.indexOf("mailto:") < 0
&& link.indexOf("+") < 0) {
if (null != parentURL) {
try {
newUrl = new URL(parentURL, link);
if ("http".equals(newUrl.getProtocol())) {
if ("".equals(newUrl.getPath())) {
newUrlStr = newUrl.toString() + "/";
} else {
newUrlStr = newUrl.toString();
}
if (newUrlStr.indexOf("\"") < 0
&& newUrlStr.indexOf("'") < 0
&& newUrlStr.indexOf("<") < 0
&& newUrlStr.indexOf(">") < 0
&& newUrlStr.substring(6).indexOf("http://") < 0
&& newUrlStr.length() < 255
){
if (newUrlStr.indexOf("#") > 0) {
returnStr = newUrlStr.substring(0,
newUrlStr.indexOf("#"));
} else {
returnStr = newUrlStr;
}
} // if newUrlStr over
}// http over
} catch (MalformedURLException e) {
System.err.println("url error 。。。");
} // try
} // if null parentUrl over
}// if link over
}// if null link over
return returnStr;
}