如何通过删除其标签和特殊字符来仅获取超链接?
How to get only hyperlinks by removing its tags and special characters?
我只想得到:
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)
Elements links = document.select("a[href]");
for (Element link : links) {
System.out.println(link.attr("abs:href"));
}
我只想得到:
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)
Elements links = document.select("a[href]");
for (Element link : links) {
System.out.println(link.attr("abs:href"));
}