HtmlAgilityPack官网:https://html-agility-pack.net/?z=codeplex
.net中使用HtmlAgilityPack做爬虫步骤:
1、在nuget中安装HtmlAgilityPack
安装好之后我们就可以开始我们的爬虫之旅了
2、抓取网页源代码
1 var web = new HtmlWeb(); 2 var doc = web.Load("要抓取的网页链接");
至此,我们就得到了网页的源代码了,然后用HtmlDocument来操作
还有一些特殊性质的需要填装验证数据的抓取,我们可以通过HttpWebRequest或者HttpClient来获取网页源代码
1 var htmlTxt =获取html的string的方法; 2 var doc = new HtmlDocument(); 3 doc.LoadHtml(htmlTxt);
3、进行数据筛选清洗
举个栗子:
我们现在抓取电影天堂的数据:https://www.dytt8.net
我们先抓取他的分类,我们打开https://www.dytt8.net 然后右键查看源代码,发现分类处于div class 为contain中,这样我们就好办了
直接用HtmlDocument获取 class为contain的所有a标签
1 var list =doc.DocumentNode.SelectNodes("//div[@class='contain']/ul/li/a"); 2 3 4 foreach (var item in list) 5 { 6 //获取a标签下面的href 7 var url = item.Attributes["href"].Value; 8 // 获取a标签的文本 9 var txt =item.InnerHtml; 10 }
这样,我们就获取电影天堂的影片分类啦。