我只想得到:
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/