使用java从html标签中提取内容

时间:2014-03-06 08:51:35

标签: java html jsoup

我从html页面中提取数据然后解析包含这样的标签的标签现在我尝试了不同的方法,如提取子字符串等,只提取标题和href标签。但它没有工作..任何人都可以帮助我。这是我输出的小片段

我的代码

     doc  = Jsoup.connect("myurl").get();

    Elements link = doc.select("a[href]");
    String stringLink = null;
    for (int i = 0; i < link.size(); i++) 
    {

        stringLink = link.toString();
        System.out.println(stringLink);
     }

输出

<a class="link" title="Waf Ad" href="https://www.facebook.com/waf.ad.54" 
data- jsid="anchor" target="_blank"><img class="_s0 _rw img" src="https:
//fbcdn-profile-a.akamaihd.net/hprofile-ak-ash1/t5/186729_100007938933785_
508764241_q.jpg" alt="Waf Ad" data-jsid="img" /></a>
<a class="link" title="Ana Ga" href="https://www.facebook.com/ata.ga.31392410" 
data-jsid="anchor" target="_blank"><img class="_s0 _rw img" src="https://
fbcdn-profile-a.akamaihd.net/hprofile-ak-ash1/t5/186901_100002334679352_
162381693_q.jpg" alt="Ana Ga" data-jsid="img" /></a>

3 个答案:

答案 0 :(得分:4)

您可以使用Element类的attr()方法来提取属性的值。

例如:

String href = link.attr("href");
String title = link.attr("title");

有关详情,请参阅此页:Extract attributes, text, and HTML from elements

答案 1 :(得分:3)

要获取页面标题,您可以使用

Document doc = Jsoup.connect("myurl").get();
String title = doc.title();

要从不同的href获取单个链接,您可以使用此

Elements links = doc.select("a[href]");
for(Element ele : links) {
    System.out.println(ele.attr("href").toString());
}  

attr()方法将给定标记中匹配的属性加速内容提供给它。

答案 2 :(得分:0)

public class Solution{
    public static void main(String[] args){

         Scanner scan = new Scanner(System.in);
        int testCases = Integer.parseInt(scan.nextLine());

        while (testCases-- > 0) {
            String line = scan.nextLine();

            boolean matchFound = false;
            Pattern r = Pattern.compile("<(.+)>([^<]+)</\\1>");
            Matcher m = r.matcher(line);

            while (m.find()) {
                System.out.println(m.group(2));
                matchFound = true;
            }
            if ( ! matchFound) {
                System.out.println("None");
            }
        }
    }
}

enter image description here

常规表达说明:

enter image description here