Jsoup解析html时对相对地址的处理

前一段时间运用htmlparser时,获取地址是时直接将html页面的相对地址转换成绝对地址,然而今天在运用jsoup,开始的时候发现只能得到相对地址,最后在网上寻找到了解决办法。

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());//得到代替地址的文本
			}

Jsoup解析html时对相对地址的处理

时间: 2024-11-10 00:14:25

Jsoup解析html时对相对地址的处理的相关文章

利用jsoup解析个人信息----图书馆客户端

上一篇HTTPclient模拟登陆交大图书馆解决了登陆,登陆之后便可以查看个人信息.个人信息条目较少,如图: 主要就是:姓名.电话.目前借书.积欠金额. 查看其html代码: 下面开始进行解析: 代码 package com.ali.login.spider; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import com.ali.login.bean.Us

使用jsoup解析HTML之jsoup和HTML DOM简介

jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据.类似的解析器还有HTMLParser,使用的也比较广泛,但是HTMLParser缺少维护,发布的最后一个版本还停留在2006年(http://sourceforge.net/projects/htmlparser/files/). 在使用jsoup解析html之前,有必要对html的dom结构进行一个了解

Jsoup解析网站输出gson数据

首先要导入jsoup跟gson的jar包. <span style="font-size:18px;">package com.bjsxt.test; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.H

Jsoup学习笔记9:Jsoup 解析saz文件,读取其中的htm文件到字符串,提取字符串中的数据写入csv文件中

本篇笔记将上篇笔记的操作做些改进,不再把saz文件中的htm文件解析出来,而是不解压直接读取其中的数据成字符串,基本思路如下: 1.自定义一个从文本文件读取内容到字符串的类:解析saz文件中的htm文档,将文件的内容读取到字符串中 2.自定义利用Jsoup解析htm字符串的类:利用Jsoup解析传入的htm字符串,将解析结果写入csv文件中 3.解析时,指定好文件路径,直接调用上面的两个工具类即可 示例代码如下: package com.daxiang.saztest; /** * 自定义一个从

Android 使用Jsoup解析html+下载图片

最近想鼓捣一下CSDN客户端,这篇博客主要介绍如何使用Jsoup解析html页面通过标签获取所需内容,并下载指定图片资源. 一.导入Jsoup JAR包 JAR包下载地址:jsoup 1.6.1 注意导入包到项目时,直接将解压后的jar文件全部复制到libs文件目录下即可,否则运行时会报错. 二.下载html页面并解析 代码: package com.example.testcsdn; import java.io.ByteArrayOutputStream; import java.io.IO

Jsoup解析html页面实现CSDN博客客户端

这段时间课比较少,我用Jsoup解析html写了一个阅读CSDN博客的app. 已经实现的功能有: 1.阅读博客频道首页最新|最热的文章: 2.浏览所有专栏&阅读其中的文章: 3.阅读热门文章: 4.查看指定id用户的所有文章: 整个程序运行起来的样子大概就是这个样子.. 核心代码:下载指定的html页面 --> 使用Jsoup解析,获取自己需要的元素.了解Jsoup的同学都知道很简单的. 由于时间&水平有限,app界面很简陋,可能会有些BUG. 而且有一个问题没有解决:解析时怎么识

利用jsoup解析天气预报

java的一个开源的解析Html的程序jsoup将html进行解析,并且让我们可以像对css操作一样来获取解析之后的内容,本文即利用其特性进行解析 jsoup的开源jar包请自行下载 public class WeatherInfo {     /**      * @param args      */     public static void main(String[] args) {         getCityWeatherInfo();         //getCityAndU

接口测试脚本之Jsoup解析HTML

第一次接触jsoup还是在处理收货地址的时候,当时在写一个下单流程,需要省市区id以及详细门牌号等等,因此同事介绍了jsoup,闲来无事,在此闲扯一番! 1.我们来看下,什么是jsoup,先来看看官方文档是怎么说的: jsoup: Java HTML Parser,jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipu

使用POI解析Excel时,出现org.xml.sax.SAXParseException: duplicate attribute &#39;o:relid&#39;的解决办法

1.使用org.apache.poi解析excle,.xlsx类型文件InputStream is = new FileInputStream(strFileName);XSSFWorkbook wb = new XSSFWorkbook(is);出现异常如下: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetExceptionat org.apache.poi.xssf.usermodel.XSSFFactor