- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试使用 htmlagilitypack 来解析表格,完成后我意识到我忘记证明 htmlagility 部分是否有效。...很明显它不起作用我也不知道我错过了什么,我在哪里做错了......因为我是初学者...所以请不要对我太苛刻。
public partial class WebForm1 : System.Net.Http.HttpClient
{
protected void Page_Load(object sender, EventArgs e)
{
System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient();
string header = "ie";
if (!headers.UserAgent.TryParseAdd(header))
{
throw new Exception("Invalid header value: " + header);
}
header = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)";
if (!headers.UserAgent.TryParseAdd(header))
{
throw new Exception("Invalid header value: " + header);
}
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(" http://www.eurogymnasium-waldenburg.de/egw_content/Stunden_Vertretungsplan/home.html");
HtmlNode docNodes = htmlDoc.DocumentNode;
HtmlNode navNode = htmlDoc.GetElementbyId("bereichaktionen");
HtmlNode docNode = htmlDoc.DocumentNode.SelectSingleNode("/html/body[@class='ui-widget']/div[@id='main']/div[@id='vplan']/div[@id='bereichaktionen']");
string nodeValue;
nodeValue = (docNode.InnerText);
Debug.WriteLine("nodeValue");
//我怀疑上面有什么问题,但我不确定是什么问题。
if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0)
{
}
else
{
if (htmlDoc.DocumentNode != null)
{
HtmlAgilityPack.HtmlNode bodyNode = htmlDoc.DocumentNode.SelectSingleNode("//body");
if (bodyNode != null)
{
}
}
}
}
有源地址,大家可以试试
谢谢大家X.L
最佳答案
首先是第三方包Html Agility Pack通用应用程序不支持您当前使用的。请使用HtmlAgilityPack for .NET Core 1.4.9.2 通用应用程序支持。
其次,方法htmlDoc.LoadHtml(string html)
的参数不是html站点的Uri,而是可以从webrequest的响应中得到的html内容。
所以正确的代码应该是这样的:
WebRequest request = HttpWebRequest.Create("http://www.eurogymnasium-waldenburg.de/egw_content/Stunden_Vertretungsplan/home.html");
WebResponse response = await request.GetResponseAsync();
Stream stream = response.GetResponseStream();
var result = "";
using (StreamReader sr = new StreamReader(stream))
{
result = sr.ReadToEnd();
}
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(result);
var node = htmlDoc.DocumentNode.SelectSingleNode("/html/body[@class='ui-widget']/div[@id='main']/div[@id='vplan']/div[@id='bereichaktionen']");
我还上传了完整的项目CHtmlAgility到github你可以下载进行测试。
关于c# - HtmlAgility :no contents appeared (C#, UWP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37896836/
第一次尝试使用 HtmlAgility Pack 时遇到了问题。 首先我从一个字符串变量加载。 string NewsText = dr["Message"].ToString(); HtmlAgil
我需要使用 HTMLAgility 包在另一个网页上发布数据。 例如, http://www.riversoft.mk/Products.aspx在这个网站上,我需要使用 HTMLAgility 包遍
写一些网络抓取的东西还很陌生,所以我很抱歉。我正在尝试减少此应用程序的运行时间。浏览大约 100 只股票的列表需要 30 多秒(为简洁起见,我只列出了 5 只股票)。有什么方法可以提高线程/异步编程的
考虑这段最简单的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text
我无法尝试从 DIV 元素的样式属性中删除样式定义。HTML代码: ... 我可能需要对这些元素中的 1 个以上应用操作。 这是我到目前为止使用 HtmlAgilityPack 的结果。 fore
我在谷歌上搜索了将 HTML 转换为不同类型 HTML 的所有可能方法(我猜是 HTML 5)。我运气不好。我正在尝试转换此(RTF 编辑器的标记转换为 HTML)标记
我有如下表格。我想抓取该表每一行的第 1 列和第 4 列。 表的结构是这样的: 每条数据都有一个b标签 我试过这样的事情。但是我没有得到我的结果 HtmlWeb web = new HtmlWeb(
我知道有一种使用 WebClient 保存图像的方法,但是,我更喜欢使用 HTMLAgility 包,有没有人有一个很好的例子来说明如何做到这一点? 最佳答案 HTML Agility Pack 用于
我尝试使用 htmlagilitypack 来解析表格,完成后我意识到我忘记证明 htmlagility 部分是否有效。...很明显它不起作用我也不知道我错过了什么,我在哪里做错了......因为我是
我读过 HTMLAgility 1.4是抓取网页的一个很好的解决方案。作为一名新程序员,我希望我能对这个项目有所投入。我这样做是作为 C#申请表。我正在使用的页面非常简单。我需要的信息只停留在 2 个
我想确保使用 HtmlAgility 包生成的 HTML 是有效的 HTML5。 例如,下面创建一个空的 HTML5 文档。我将有其他类似的功能来创建更复杂的文档。我想要测试来验证我没有搞砸,并且生成
我正在为网站使用 CMS 系统。我的内容贡献者在系统中放置了一些非常大的图像,然后继续在 cms 中调整它们的大小,以便它们适合页面或文章。当网络用户点击该页面时,他们会下载完整的图像,即使贡献者已经
到目前为止,我正在尝试检索某个网站的 HTML 标记之间的文本.... 例如,我需要提取出这些 span 标签之间的文本,我将如何处理,我收到一条错误消息,指出“对象引用未设置为对象的实例”,这里是
代码可以比我更好地解释这个问题。我还包括了我尝试这样做的替代方法。如果可能,请解释为什么这些其他方法也不起作用。我的想法已经用完了,遗憾的是 HtmlAgilityPack 的例子并不多。不过,我目前
我有一个这样的 html 文件: Some Texts Some Texts 如何获取每个 div id 标签之间的所有文本?我的问题与 WPF 有关。 这是我的代码: private voi
我是一名优秀的程序员,十分优秀!