我正在实施一个基本的抓取工具,以便以后在漏洞扫描程序中使用。我正在使用jsoup来连接/检索和解析html文档。
我手动提供目标网站的基础/根(www.example.com)并连接。
...
Connection connection = Jsoup.connect(url).userAgent(USER_AGENT);
Document htmlDocument = connection.get();
this.htmlDocument = htmlDocument;
...
然后我检索页面上的所有链接。
...
Elements linksOnPage = htmlDocument.select("a[href]");
...
在此之后,我在链接之间循环,并尝试获取网站上所有页面的链接。
for (Element link : linksOnPage) {
this.links.add(link.absUrl("href"));
}
问题如下。根据我获得的链接,有些链接可能不是新页面的链接,甚至根本不是指向页面的链接。作为一个例子,得到了如下链接:
的mailto:example.example@exampl.com
我需要一些帮助,这是对链接的过滤,以便我只获得指向同一根/基站点的新页面的链接。
答案 0 :(得分:1)
这很容易。检查absUrl是以图像格式结束还是以js或css结尾:
if(absUrl.startsWith("http://www.ics.uci.edu/") && !absUrl.matches(".*\\.(bmp|gif|jpg|png|js|css)$"))
{
//here absUrl starts with domain name and is not image or js or css
}