2012-07-20 58 views
0

我从网页中提取内容。在网页中,电话号码和电子邮件ID等信息存储在图像中。我想提取图像以及该表格内的文字。在输出字符串中,我希望输出的方式与使用图像和文本的网页中显示的方式相同。使用htmlagilitypack提取文本和图像

以下是网页内容。

<table> 
<tr> 
    <td>text</td> 
    <td><img src="" /></td> 
</tr> 
<tr> 
    <td>text</td> 
    <td><img src="" /></td> 
</tr> 
<tr> 
    <td>text</td> 
    <td><img src="" /></td> 
</tr> 
</table> 

我可以得到文字和图像中提取这样的:

文本IMG

文本IMG

文本IMG

回答

0

试试这个

foreach (HtmlNode img in root.SelectNodes("//img")) 
{ 
    string att = img.Attributes["src"].Value; 
    anchorTags.Add(att); 
} 
+0

我编辑了这个问题。请看看它 – Maddy 2012-07-20 09:42:51

1
HtmlDocument doc = new HtmlDocument(); 
doc.Load("file.htm"); 
HtmlNode imgNode = doc.DocumentElement.selectSingleNode("/table/tr/td/img"); 

//Just get Images only 
foreach (HtmlNode img in doc.DocumentElement.SelectNodes("//img")) 
{ 
    string imgSrc = img.Attributes["src"].Value; 
} 

//get td's and ignore img in it 
foreach (HtmlNode td in doc.DocumentElement.SelectNodes("//td")) 
{ 
    HtmlNode img = td.ChildNodes["img"]; 
    if(img == null) 
    { 
    string tdText = td.InnerText; 
    } 
} 

//Get Images that have style attribute 
foreach (HtmlNode img in doc.DocumentElement.SelectNodes("//img[@style]")) 
{ 
    string style = img.Attributes["style"].Value.ToLower(); 
    style = style.Replace("background:url('", ""); 
    style = style.Replace("')", ""); 
//now you have the image url from the background 

} 
+0

我编辑过这个问题。请看看它。 – Maddy 2012-07-20 09:42:42

+0

@ user1516690请参阅我的更新回答 – HatSoft 2012-07-20 10:25:43

+0

谢谢HatSoft。 DocumentElement支持我的代码。我尝试使用DocumentNode。我还有一个问题,如何提取img标签的背景图像并存储在我的系统中。 – Maddy 2012-07-20 11:35:08

相关问题