java - 如何通过删除其标签和特殊字符来仅获取超链接?

标签 java html hyperlink tags jsoup

我只想得到:

http://tamilblog.ishafoundation.org/nalvazhvu/vazhkai/

而不是所有这些:

<a href="http://tamilblog.ishafoundation.org/nalvazhvu/vazhkai/"></a>

我只想将它应用到我的循环(部分):

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class NewClassssssss {
    public static void main(String[] args) throws IOException {
        Document doc =  Jsoup.connect("http://tamilblog.ishafoundation.org/page/3//").get();

        Elements section = doc.select("section#content");
        Elements article = section.select("article");
        Elements links = doc.select("a[href]");

        for (Element a : section) {
            //   System.out.println("Title : \n" + a.select("a").text());
            System.out.println(a.select("a[href]"));
        }

        System.out.println(links);
    }
}

最佳答案

代码中存在一些问题:

1。搜索范围无效

Elements links = doc.select("a[href]");

上面一行从整个文档中获取所有链接,而不仅仅是文章。

2。循环中使用的节点无效

for (Element a : section) {
   // ...
}

上面的 for 循环适用于部分而不是链接。

3。重复调用 select 方法

Elements section = doc.select("section#content");
Elements article = section.select("article");
Elements links = doc.select("a[href]");

不必为层次结构中的每个节点执行选择。 Jsoup 可以为您导航。这三行可以替换为一行:

Elements links = doc.select("section#content article a");

示例代码

以下是恢复所有三个先例点的示例代码:

Document doc = Jsoup.connect("http://tamilblog.ishafoundation.org/nalvazhvu/vazhkai/").get();

for (Element a : doc.select("section#content article a")) {
    System.out.println("Title : \n" + a.text());
    System.out.println(a.absUrl("href")); // absUrl is used here for *always* having absolute urls.
}

输出 标题:

http://tamilblog.ishafoundation.org/kalyana-parisaga-isha-kaattupoo/
Title : 
இதயம் பேசுகிறது
http://tamilblog.ishafoundation.org/isha-pakkam/idhyam-pesugiradhu/
Title : 
வாழ்க்கை
http://tamilblog.ishafoundation.org/nalvazhvu/vazhkai/
Title : 
கல்யாணப் பரிசாக ஈஷா காட்டுப்பூ…
http://tamilblog.ishafoundation.org/kalyana-parisaga-isha-kaattupoo/
... (truncated for brievety)

关于java - 如何通过删除其标签和特殊字符来仅获取超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34629413/

相关文章:

Java 7 和 Tomcat 7.0.64 - ClassFormatException : Invalid byte tag in constant pool

java - 使用 try and catch 请求 Android 运行时权限

html - 如何创建没有常规表格标签的表格?

html - 响应式图标菜单子(monad)菜单

text - 链接是图片时如何指定链接文字?

javascript - 全局 Javascript 链接处理程序

java - 类型转换 if flex

html - 拒绝 BeautifulSoup 中的一些 HTML 标签

html - 链接在移动模式下不起作用

java - 启动 Eclipse 时出现 "Unable to acquire application service"错误