2012-07-25 15 views
11

Jak zdobyć stronę meta (tytuł, opis, zdjęcia) jak facebook dołączyć URL przy użyciu regex w .java poradęJak zdobyć stronę meta (tytuł, opis, zdjęcia) jak Facebook dołączyć URL przy użyciu regex w java

+0

Cześć, muszę dostać opis strony jak najszybciej .. może ktoś mi pomóc ..? –

+0

http://stackoverflow.com/questions/9958425/get-title-meta-description-content-using-url – cnmuc

+0

Możliwy duplikat [Pobierz tytuł, zawartość metaopisów za pomocą adresu URL] (https://stackoverflow.com/questions/9958425/get-title-meta-description-content-using-url) – Stefan

Odpowiedz

2

I ten link jsoup.org jeśli jeszcze nie rozwiążesz problemu, możesz obejrzeć here jest kilka przykładów, jak rozwiązać problem z jsoup.
I here.

4

Jak wspomniano Ishikawa Yoshi użyciu JSoup

Przykład:

Document doc = Jsoup.connect("http://example.com/").get() 
for(Element meta : doc.select("meta")) { 
    System.out.println("Name: " + meta.attr("name") + " - Content: " + meta.attr("content")); 
} 

Kod ten przetestowane nadzieję, że to pomaga.

przy użyciu regex do zgarniania dokument jest zły pomysł, przeczytałem o to on Coding Horror

11

Oto fragment, który odczytuje stronę internetową i buduje niewielki fragment kodu HTML, który będzie wyświetlany obraz Open Graph, a tytuł do prawe zawijanie wokół obrazu. Powrót do używania tylko tytułu html, jeśli brakuje tagów OG, więc może działać na wszystkich stronach internetowych.

public static String parsePageHeaderInfo(String urlStr) throws Exception { 

    StringBuilder sb = new StringBuilder(); 
    Connection con = Jsoup.connect(urlStr); 

    /* this browseragant thing is important to trick servers into sending us the LARGEST versions of the images */ 
    con.userAgent(Constants.BROWSER_USER_AGENT); 
    Document doc = con.get(); 

    String text = null; 
    Elements metaOgTitle = doc.select("meta[property=og:title]"); 
    if (metaOgTitle!=null) { 
     text = metaOgTitle.attr("content"); 
    } 
    else { 
     text = doc.title(); 
    } 

    String imageUrl = null; 
    Elements metaOgImage = doc.select("meta[property=og:image]"); 
    if (metaOgImage!=null) { 
     imageUrl = metaOgImage.attr("content"); 
    } 

    if (imageUrl!=null) { 
     sb.append("<img src='"); 
     sb.append(imageUrl); 
     sb.append("' align='left' hspace='12' vspace='12' width='150px'>"); 
    } 

    if (text!=null) { 
     sb.append(text); 
    } 

    return sb.toString();  
} 
+0

Dzięki Clay. Pomógł mi rozwiązać ten sam problem w Swift na iOS –

2

Co powiesz na to? Poniższa instrukcja analizowania wszystkich tagów zaczyna się od "og:". Jest to przydatne.

doc.select ("meta [właściwość^= og:]")

void parseOGTag(String response) { 
    // Parse og tags 
    Document doc = Jsoup.parse(response); 
    Elements ogTags = doc.select("meta[property^=og:]"); 
    if (ogTags.size() <= 0) { 
     return; 
    } 

    // Set OGTags you want 
    String title; 
    String desc; 
    String image; 
    for (int i = 0; i < ogTags.size(); i++) { 
     Element tag = ogTags.get(i); 

     String text = tag.attr("property"); 
     if ("og:image".equals(text)) { 
      image = tag.attr("content"); 
     } else if ("og:description".equals(text)) { 
      desc = tag.attr("content"); 
     } else if ("og:title".equals(text)) { 
      title = tag.attr("content"); 
     } 
    }      
} 
Powiązane problemy