当前位置: 首页 > 知识库问答 >
问题:

C#HtmlAgilityPack超文本标记语言解析问题

袁枫涟
2023-03-14

我有这个

<div class="postrow firs">
        <h2 class="title icon">
            This is the title
        </h2>
        <div class="content">
            <div id="post_message_1668079">
                <blockquote class="postcontent restore ">
                <div>Category</div>
                                         <div>Authour: Kim</div>
                    line 1<br /> line2
                </blockquote>
            </div>
        </div>
    </div>      <div class="postrow">
        <h2 class="title icon">
            This is the title
        </h2>
        <div class="content">
            <div id="post_message_1668079">
                <blockquote class="postcontent restore ">
                <div>Category</div>
                    line 1<br /> line2
                </blockquote>
            </div>
        </div>
    </div>

我想从每个具有类“postrow”的div中提取以下内容,并且可能还有其他类,比如<code>

    < li >带有类标题的标记内的内容 < li >来自“blockquote”标记的HTML。但不包括该标签内的任何div。

我尝试的代码

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml("http://localhost/vanilla/");
            List<string> facts = new List<string>();
            foreach (HtmlNode li in doc.DocumentNode.SelectNodes("//div[@class='postrow']"))
            {
                facts.Add(li.InnerHtml);
                foreach (String s in facts)
                {
                    textBox1.Text += s + "/n";
                }
            }

共有1个答案

叶淇
2023-03-14

您的代码有问题,必须将html作为字符串而不是路径

doc.LoadHtml("http://localhost/vanilla/");

代替

var request = (HttpWebRequest)WebRequest.Create("http://localhost/vanilla/");
String response = request.GetResponse();

doc.loadHtml(response);

现在迭代解析的html

 类似资料:
  • 对于上面的html内容,我如何使用Jsoup解析并获取文本 当我使用 我得到了这样的东西

  • 我是新来的。我想解析html,但问题是我们必须在中指定的URL,我将在运行时从其他页面响应此URL。有没有办法将收到的网址传递到中?我读过这样的东西: 但是我不知道如何使用它。我很想知道是否有其他方法比jsoup更好。

  • 我到处找,到处找。我已经看到了我将要发布的PHP代码中的许多问题,但没有看到任何与我所看到的特定问题相关的问题。 这是我的问题-两行($values/$required),其中我有“name”,“email”,“subject”,“message” 我想在上面加上“电话”。(即“姓名”、“电子邮件”、“电话”、“主题”、“信息”) 如果我把它添加到两行中的一行(不管是哪一行),我仍然可以提交表格,

  • 请原谅我,这个问题已经被问了十亿次了——用Python解析超文本标记语言有哪些可用的选项,特别是我正在处理一些有很多错误的遗留站点。有没有真正容错的解析器?

  • 我试图在HTML的pre标签中包装文本,但它不起作用。我使用下面的CSS作为我的标签。 我从如何在pre标记中换行文本? 我已添加

  • 我正在尝试使用放心来检查服务器返回的HTML文档的一些属性。演示该问题的SSCCE如下所示: 现在,此尝试以,这是由所有可能的错误大约 30 秒左右后超时! 如果我用< code>xmlPathConfig()删除这一行。用()。功能(...)当特性“http://Apache . org/XML/features/disallow-DOCTYPE-decl”设置为true时,由于< code>D