Jsoup解析html时对相对地址的处理
2014-06-06 14:45
176 查看
前一段时间运用htmlparser时,获取地址是时直接将html页面的相对地址转换成绝对地址,然而今天在运用jsoup,开始的时候发现只能得到相对地址,最后在网上寻找到了解决办法。
htmlparser获得URLs:
Jsoup代码:
Element element = doc.body();
//Elements links = element.getElementsByAttributeValue("class", "note");
Elements links = element.select("a[href]");
//links.removeAll();
FileWriter fileWriter = new FileWriter(file, true);
for(int i = 0; i < links.size(); i++ ){
Element link = links.get(i);
System.out.println((link.attr("abs:href") + " "));//这里添加abs后得到的为绝对地址,如果不加所得到的将是相对地址
System.out.println((link.text());//得到代替地址的文本
}
htmlparser获得URLs:
//参数说明:parser为模拟浏览器对URL地址操 dataPath:所解析的URL存放路径 dataName:存放URL的数据库名 public static void extractURL(final Parser parser, final String dataPath, final String dataName){ try { NodeVisitor visitor = new NodeVisitor(){ //int i = 1; public void visitTag(Tag tag){ if(tag instanceof LinkTag){ LinkTag link = (LinkTag)tag; String linkString = link.getLink(); linkString.trim(); String regex = "^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]" ; boolean isMatch = PatternMatcher.stringMatchRegex(regex, linkString) ; if(isMatch){ if(OperatingDB.writerKeyAndValue(dataPath,dataName,linkString,"")){ String linkTxt = link.getText(); System.out.println(linkString + " " + linkTxt); //System.out.println("插入URL成功!!" ); } } } } }; parser.visitAllNodesWith(visitor); } catch (ParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Jsoup代码:
Element element = doc.body();
//Elements links = element.getElementsByAttributeValue("class", "note");
Elements links = element.select("a[href]");
//links.removeAll();
FileWriter fileWriter = new FileWriter(file, true);
for(int i = 0; i < links.size(); i++ ){
Element link = links.get(i);
System.out.println((link.attr("abs:href") + " "));//这里添加abs后得到的为绝对地址,如果不加所得到的将是相对地址
System.out.println((link.text());//得到代替地址的文本
}
相关文章推荐
- C#的一个URL加载器,能处理编码、相对地址解析、GET/POST、HTML的include、页面重定向
- Java - 抓取优酷网视频播放页面(使用jsoup解析html,正则表达式处理字符串)
- 应用Jsoup解析给定的某个URL地址、HTML文本内容。
- Jsoup处理Url与解析Html
- jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址
- [Android实例] 利用Jsoup解析Html实现的Android招聘信息大全
- 使用 jsoup 对 HTML 文档进行解析和操作
- 使用了开源的jsoup进行解析html
- 使用 jsoup 对 HTML 文档进行解析和操作
- 利用Jsoup解析HTML
- 使用 jsoup 对 HTML 文档进行解析和操作
- Android开发系列十:使用Jsoup解析HTML页面
- 一个小型浏览器架构:HTTP通讯、COOKIE处理、HTML解析、JS模拟、表单处理
- 利用Jsoup解析HTML
- 使用Jsoup解析HTML页面
- 使用Jsoup解析Html,获取网页内容
- 使用 jsoup 对 HTML 文档进行解析和操作
- (转载)使用 jsoup 对 HTML 文档进行解析和操作
- 开源HTML解析工具包jsoup 1.3.1发布
- jsoup 解析 html 学习