

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");
}
}
}