htmlagilitypack InnerText错误

时间:2015-11-10 10:44:52

标签: c# html-agility-pack

我正在尝试解析网站并获取一些内容。这是我的代码:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我只需要文字,但结果是这样的:   一些文字...和这个数组:

doc.DocumentNode.SelectSingleNode("//div[@class='article-content']").InnerText

我试过了:

( [0] => 39 [1] => 6 [2] => 10 [3] => 9 [4] => 13 [5] => 5 [6] => 7 [7] => 12 [8] => 11 [9] => 8 [10] => 14 [11] => 82 ) [archtoday] => 0 [hour] => 09:00 [autoarchive] => 1 [autoarchivereset] => 1 [show_description] => 0 [num_desc_words] => 10 [show_description_image] => 0 [num_leading_articles] => 0

但结果是一样的 链接:http://www.interpressnews.ge/ge/politika/353565-barak-obamas-thanashemtse-rusethma-saqarthveloshi-gankhorcielebuli-intervenciis-dros-mighebuli-gakvethilebi-aithvisa.html

div:

HtmlEntity.DeEntitize(doc.DocumentNode.SelectSingleNode("//div[@class='article-content']").InnerText)

1 个答案:

答案 0 :(得分:2)

关于内部文本的注意事项是,它将为您提供节点的文本内容,但不关心CSS或影响网页本身显示方式的任何其他内容。这意味着如果有一个display css属性设置为none的节点,那么HTML解析器无关紧要,它将显示该节点的文本。这正是这里发生的事情。

http://www.interpressnews.ge/ge/politika/353565-barak-obamas-thanashemtse-rusethma-saqarthveloshi-gankhorcielebuli-intervenciis-dros-mighebuli-gakvethilebi-aithvisa.html是您在评论中提到的页面。如果您查看页面的来源(ctrl-u在chrome中,我认为是firefox,不确定IE中的快捷方式),那么在页面中查找article-content您将找到该文章,并看到它还有一个其中<div style="display:none;">包含您看到的奇怪文本。因此,这不是html敏捷包中的错误。

您需要分析页面并编写更复杂的代码,以准确计算出您要从页面中提取的内容。