0

後に h3 タグがありますが、終了 p タグがない ap タグをスクレイピングする必要があります。次のようになります。

<script ad>asdasdasd</script>
<p>Translation companies are
-----------------------
-----------------------
<h3 class="this_class">mind blown site</h3>

</p> タグがないので、完全に解析できません。今、私は2つの質問があります:

1) これは httpagility xpath を使用して解析できますか?

2) 2 つの文字列の間のテキストを検索する機能があります (getbetween)。しかし、私には疑問があります-「asdasdasd」と「を使用する場合、vb.netは常に100%で、同じ行が2〜3行あるため、h3のすぐ上にあるスクリプトタグを使用します-「asdasdasd」

3) 皆さんが知っている他の方法はありますか?

(HTMLが台無しにならないようにコードを書く必要がありました)

よろしく、

4

2 に答える 2

1

少なくともh3との間のタグについては、本当に役立つ「本物の」html を投稿することをお勧めしますp。とにかく、これはTagpから -Tagを取得するはずですh3-

HtmlDocument doc = new HtmlDocument();
doc.Load(... //Load the Html...

//Either of these lines will do
HtmlNode pNode = doc.DocumentNode.SelectSingleNode("//h3[@class='this_class']/preceding-sibling::p");
//HtmlNode pNode = doc.DocumentNode.SelectSingleNode("//h3[contains(text(),'mind blown site')]/preceding-sibling::p");

string pInnerHtml = pNode.NextSibling.InnerHtml; //Has the text "Translation companies are...."
于 2012-06-02T13:36:07.083 に答える
0

したがって、一般に、開始タグから不要なタグの開始までのすべてのノードを取得するにはp、次のようにします。

var p = doc.DocumentNode.SelectSingleNode("//p");
var h3 = p.SelectSingleNode("following-sibling::h3[@class='this_class']");
var following = new List<string>();
for (var current = p.NextSibling; current != h3; current = current.NextSibling)
{
    following.Add(current.InnerText);
}
var innerText = String.Concat(following);
于 2012-06-02T08:38:25.523 に答える