public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { } public class Result { /// <summary> /// 链接 /// </summary> public string url { get; set; } /// <summary> /// 标题 /// </summary> public string title { get; set; } /// <summary> /// 正文内容 /// </summary> public string content { get; set; } } private void button1_Click_1(object sender, EventArgs e) { GetContent(textBox1.Text); } public void GetContent(string url) { List<Result> list = new List<Result>(); HtmlWeb htmlWeb = new HtmlWeb(); // htmlWeb.OverrideEncoding = Encoding.GetEncoding("GBK"); htmlWeb.OverrideEncoding = Encoding.UTF8; HtmlAgilityPack.HtmlDocument htmlDoc = htmlWeb.Load(url); var node = htmlDoc.DocumentNode; //选择class="top-channel clearfix"的span节点 // "//"表示从根节点开始查找,两个斜杠"//"表示查找所有childnodes; // 一个斜杠"/"表示只查找第一层的childnodes(即不查找grandchild); // 点斜杠"./"表示从当前结点而不是根结点开始查找(只在xpath最开始出现) var Nodes = node.SelectSingleNode(".//div[@class='listmain']").SelectSingleNode(".//dl"); //var aNode = li; foreach (var item in Nodes.SelectNodes(".//dd")) { Result res = new Result(); var aTag = item.SelectSingleNode(".//a"); if (aTag.InnerText.Contains("展开全部章节")) { continue; } else { res.url = "https://www.bige3.cc" + aTag.GetAttributeValue("href", ""); res.title = aTag.InnerText; list.Add(res); } } var dtNode = Nodes.SelectSingleNode(".//dt"); label2.Text = dtNode.InnerText; // 绑定数据 不修改绑定 this.listBox1.DataSource = list; this.listBox1.DisplayMember = "title"; // 显示内容 数据的属性 this.listBox1.ValueMember = "url"; // 项的值 数据的属性 } private void listBox1_MouseClick_1(object sender, MouseEventArgs e) { string url = string.Empty; ListBox listBox = sender as ListBox; if (listBox != null && listBox.SelectedIndex != -1) { url = listBox.SelectedValue.ToString(); HtmlWeb htmlWeb = new HtmlWeb(); htmlWeb.OverrideEncoding = Encoding.UTF8; HtmlAgilityPack.HtmlDocument htmlDoc = htmlWeb.Load(url); var doc = htmlDoc.DocumentNode; var Nodes = doc.SelectSingleNode(".//div[@class='Readarea ReadAjax_content']"); richTextBox1.Text = Nodes.InnerHtml; richTextBox1.Text = richTextBox1.Text.Replace("<br>", "\r\n"); } } }