【发布时间】:2018-10-07 11:22:04
【问题描述】:
我正在尝试使用 C# 中的 HTML Agility Pack 抓取具有“pre”标签的网站。我可以找到很多“table tr td”示例,但找不到任何“pre”示例。这是我的代码,内嵌了格式化文本“pre”。
private void PreformattedTextButton_Click(object sender, EventArgs e)
{
var url = @"http://www.thepredictiontracker.com/basepred.php";
var data = new MyWebClient().DownloadString(url);
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(data);
// m _ a _ e d d d d d d l n
//e h d v r 1 2 3 4 5 6 2 s
// BAL D.BUNDY TAM C.ARCHER 7.5 7.48 8.08 7.00 5.58 4.70. . 6.46
// CIN H.BAILEY ATL S.NEWCOMB 9.0 9.72 10.08 10.00 11.62 11.51. . 10.73
foreach (HtmlNode pre in doc.DocumentNode.SelectNodes("//pre"))
{
textBox1.Text += pre.InnerText + System.Environment.NewLine;
}
}
我想捕捉看起来像第 3 行和第 4 行的行,而忽略前面的行。
foreach 已执行,但它的 pre.InnerText.Length 为 1642,这是预格式化文本的总和。我想捕获一行数据。例如第 3 行和第 4 行。
【问题讨论】:
-
所以你是说你的
foreach循环的内部内容永远不会被执行? (即doc.DocumentNode.SelectNodes("//pre").GetEnumerator().MoveNext() == false) -
执行了内部循环,但它捕获了所有预先格式化的文本。我只想捕获文本行。例如第 3 行和第 4 行。
标签: c# tags html-agility-pack