2010-08-02 132 views
2

,我需要用jsoup从这个网站Jsoup图像标签提取

<div class="picture"> 
    <img src="http://asdasd/aacb.jpgs" title="picture" alt="picture" /> 
</div> 

我需要提取该img标签的src ... 我使用这个代码我得到空值提取图像标签

Element masthead2 = doc.select("div.picture").first(); 
String linkText = masthead2.outerHtml(); 
Document doc1 = Jsoup.parse(linkText); 
Element masthead3 = doc1.select("img[src]").first(); 
String linkText1 = masthead3.html(); 
+0

你可以发布html提取?你的代码不清楚html是如何组成的。 – Impiastro 2010-08-02 20:30:24

+0

这是html

picture
Rajesh 2010-08-02 20:48:56

回答

1

用下面的代码,我可以正确地提取图像:

Document doc = Jsoup.parse("<div class=\"picture\"> <img src=\"http://asdasd/aacb.jpgs\" title=\"picture\" alt=\"picture\" /> </div>"); 

    Element elem = doc.select("div.picture img").first(); 

    System.out.println("elem: " + elem.attr("src")); 

我使用jsou p版本1.2.2,最新的一个。

也许你正试图打印像img这样的空标签的内部html。

从文档:“html() - 检索元素的内部HTML”。

对于可以使用HTML的第二部分:

Document doc2 = Jsoup.parse("<tr> <td class=\"blackNoLine\" nowrap=\"nowrap\" valign=\"top\" width=\"25\" align=\"left\"><b>CAST: </b></td> <td class=\"blackNoLine\" valign=\"top\" width=\"416\">Jay, Shazahn Padamsee&nbsp;</td> </tr>"); 
    Elements trElems = doc2.select("tr"); 
    if (trElems != null) { 
     for (Element element : trElems) { 
      Element secondTd = element.select("td").get(1); 

      System.out.println("name: " + secondTd.text()); 
     } 
    } 

其中打印 “周杰伦,沙萨恩·帕达姆西”。

+0

亚感谢yar另一个..\t \t

尺寸:
\t \t
例如文本
\t \t
它有很多的DD和DT我如何可以提取一个确切 – Rajesh 2010-08-02 21:34:11

+0

你能解释一下什么是你想怎么办?你也可以发布请求的html代码吗? – Impiastro 2010-08-02 22:25:21

+0

我怎样才能提取第二元件中的类 \t \t \t \t \t \t \t CAST: \t \t \t \t \t \t \t 周杰伦,沙萨恩·帕达姆西  \t \t \t \t \t \t 我需要提取Jay,Shazahn Padamsee   – Rajesh 2010-08-02 23:58:14

1
<tr> <td class="blackNoLine" nowrap="nowrap" valign="top" width="25" align="left"><b>CAST: </b></td> <td class="blackNoLine" valign="top" width="416">Jay, Shazahn Padamsee&nbsp;</td> </tr> 

您可以使用:

Document doc = Jsoup.parse(...); 
Elements els = doc.select("td[class=blackNoLine]"); 
Element el= els.get(1); 
String castName = el.text(); 
6

下面是一个例子来获取图像源属性:

public static void main(String... args) { 
    Document doc = Jsoup.parse("<div class=\"picture\"><img src=\"http://asdasd/aacb.jpgs\" title=\"picture\" alt=\"picture\" /></div>"); 
    Element img = doc.select("div.picture img").first(); 
    String imgSrc = img.attr("src"); 
    System.out.println("Img source: " + imgSrc); 
} 

div.picture img选择找到DIV下的图像元素。

的元件上的主要提取物的方法是:

  • attr(name),它获取一个元素的属性的值,
  • text(),它得到的元件(例如在<p>Hello</p>,文本的文本内容( )为 “你好”),
  • html(),它获取一个元素的内HTML(<div><img></div> HTML()= <img>),和
  • outerHtml(),它获取一个元素完整的HTML(<div><img></div> HTML()= <div><img></div>

你不需要重新分析HTML就像在你当前的例子,或者使用更具体的选择选择在第一时间正确的元素,或打element.select(string)方法拂晓。