我从HTML收集链接并使用jsoup获取我添加到集合中的链接。问题是我需要每个链接都在一行上,所以当写入文件时,它可以逐行解析。
输入是一个WARC记录,对于每个记录,我想获得所有链接。 getcontentutf8()和getHeaderMetadataItem方法来自WarcRecord api found here。
代码:
String baseURL = getHeaderMetadataItem("WARC-Target-URI");
Vector<String> retVec = new Vector<String>();
Document doc = Jsoup.parse(getContentUTF8(), baseURL);
Elements links = doc.select("a[href]");
for (Element link : links){
String newLink = link.absUrl("href").replace("\n", "");
retVec.add();
System.out.println(newLink);
}
将stdout写入文件时,某些链接会分为两行,例如:
1: http://somelink.com/submit?url=
2: http://someotherlink.net
虽然其他可能看起来像这样(我想要的方式):
1: http://somesite.com/submit?url=http://someothersite.com/
看起来它总是发生在=
之后。
编辑:添加了更多信息。在某些情况下,似乎可以删除回车和换行符。但是,现在我遇到来自jsoup的绝对URL中的制表符。我检查了一些源站点,他们实际上在href后有标签。似乎有很多案件可以处理。我想认为有一个解决它们的一般解决方案吗?
<a class="MenuButton " href="/ features"> <em> Features </em> </a>
变成绝对网址:
http://archinect.com/ features
由于我将其存储在URI \t <list of links>
表单上的文件中,因此在解析时会中断