方法一:
/**
* 检查从页面上提取出的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;
}
分享到:
相关推荐
本文将讨论基于机器学习的恶意URL识别方法,旨在解决传统的黑名单方法中存在的问题,如查全率低、时效性差等。我们将详细介绍机器学习在恶意URL识别中的应用,包括集成学习模型、随机森林算法等,并对其优缺点进行...
自动判断URL编码的方法。URL中包含编码的中文的时候,程序获取queryString需要根据url的不同编码,采用不同的解码方式,RequestQueryString方法能够自动识别url是用UTF-8编码还是GB2312编码,从而自动获取争取的值。...
该方法的核心是利用Java内置的`HttpURLConnection`类来尝试建立与指定URL的连接,并根据响应状态码判断连接是否成功。下面将对代码中的关键部分进行深入解析。 #### 代码分析 1. **方法定义**: ```java private...
以下是一些关于如何在Java中判断URL链接是否有效的详细方法: 首先,我们可以使用`java.net.URL`和`java.net.HttpURLConnection`类来实现这个功能。下面是一个简单的示例: ```java import java.net.*; public ...
本文将深入探讨“C#自动识别URL编码”的主题,帮助开发者解决URL编码带来的乱码问题。 URL编码,也称为百分号编码(Percent-encoding),是统一资源定位符(Uniform Resource Locator, URL)的一部分,用于在非...
在提供的代码片段中,我们可以看到一种简单的URL有效性判断方法,即通过尝试创建一个`URL`对象并打开其对应的输入流来判断该URL是否可达。这种方法的基本思想是:如果能够成功创建`InputStream`,则说明该URL是有效...
《发帖时默认禁用URL识别 for Discuz7》 在Discuz! 7这款流行的社区论坛软件中,用户在发布帖子时,系统通常会自动识别并处理帖子里的URL链接,这有时可能会带来不必要的安全风险或者不符合管理员的管理策略。针对...
本文将深入探讨如何在代理方法中拦截URL,以实现iOS和JS之间的有效通信。首先,我们需要理解iOS中的WKWebView组件,它是苹果提供的用于加载和呈现Web内容的工具,它支持与JavaScript的深度集成。 ### WKWebView简介...
这个压缩包"发帖时默认禁用url识别插件 for Discuz!7.0.rar"是专门为Discuz!7.0版本设计的一个插件,其目的是在用户发布帖子时自动禁用URL识别功能。这在某些情况下可能是必要的,比如为了防止垃圾链接的传播或者...
方法二: 代码如下://判断当前系统是否支持Java AWT Desktop扩展 if(java.awt.Desktop.isDesktopSupported()){ try{ //创建一个URI实例,注意不是URL java.net.URI uri=java.net.URI.create(“//www.j
如果`match`方法返回的是null,说明没有匹配到任何内容,意味着用户输入的URL不符合预设的正则表达式规则,因此会弹出提示“你输入的URL无效”。如果`match`方法能够匹配到,则意味着输入的URL符合规则,会弹出提示...
在实际测试中,使用真实的恶意URL数据集,该方法取得了高达97.3%的精确度和91.8%的F1分数,证明了深度学习在恶意URL检测领域的有效性和实用性。 此外,卷积神经网络在处理图像时会自动进行特征提取,这大大减少了对...
其对应的API文档详细描述了各种方法和属性的使用说明,这对于开发者深入理解和利用Node.js中的URL模块来处理网络请求提供了便利。 最后,文档内容中指出,存在文字识别错误或漏识别的情况,所以在理解时可能需要...
2. 转义字符:易语言需要识别哪些字符需要转义,并用特定的方式(通常是百分号加两位十六进制数)来表示这些字符。 3. 编码函数:编写或找到易语言的URLEncode函数,它接收一个字符串作为输入,然后返回编码后的URL...
这个压缩包文件"安卓textView相关-自动识别url的TextView.rar"显然包含了一些关于如何使`TextView`能够自动识别并链接URL的示例代码或库。下面我们将深入探讨这个主题。 在默认情况下,`TextView`不会自动将文本中...
1. **配置URL Scheme**:在TestA应用的Info.plist文件中添加URL Types键值对,设定识别码(Identifier)和URL Schemes(如"testA")。 2. **处理URL请求**:在TestA的AppDelegate.swift(或对应的AppDelegate.m在...
本文将深入探讨如何实现"Android APK下载文件的URL链接"以及如何判断网络状态。 首先,我们需要了解`Handler`机制。`Handler`在Android中用于线程间通信,它允许我们在主线程中更新UI。在下载APK的过程中,我们通常...
if (IsDownloadLink(href)) // 自定义方法判断是否为下载链接 { DownloadFile(href); } } ``` `DownloadFile`方法可以再次利用`WebClient`或`HttpClient`来实现实际的文件下载: ```csharp private static ...