使用C#编写爬虫获取需要的数据(初级写法)
最近。公司大佬给安排了个新任务,使用c#来编写一个爬虫。从来没有接触过的我瞬间蒙蔽,以往只听说过Python的爬虫如何如何,没想到还有我来制作爬虫的一天。
闲话少叙,进入主题。
在我查阅多方资料后,找到一个好用的Nuget第三方包

不过,暂且不说它,聊聊思路。
使用爬虫获取网页特定内容,显而易见,首先就是要获取网页上的所有内容,这样才方便从全部中提取各自需要的内容。
那么问题来了,需要如何将网站全部内容获取下来呢?
最简单的方法
public static string GetWebClient(string url)
{
WebClient webClient = new WebClient();
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
Stream myStream = webClient.OpenRead(url);
StreamReader sReader = new StreamReader(myStream, Encoding.UTF8);
string returnStr = sReader.ReadToEnd();
return returnStr;
}
这个方法主要功能就是读取网站上的内容,并呈现在控制台上。
接下来才是关键,如何从全部内容中获取需要的东西?
因为使用的是控制台程序,所以下面直接贴代码
public static void Main(string[] args)
{
string str = GetWebClient("");//括号内放入需要用到的网址
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(str);
HtmlNodeCollection liNodes = htmlDoc.DocumentNode
.SelectSingleNode("")//括号内放入想获取内容的HTML标签,例如想获取表格信息,则写入("//table")
//注意:“//”两个斜杠表示文件中所有符合的元素都被选出来,“/”代表绝对路径
.SelectNodes("");//这里写子元素,用法和上面相同
if (liNodes != null && liNodes.Count > 0)
{
for (int i = 0; i < liNodes.Count; i++)
{
var Id = liNodes[i].SelectSingleNode("td[1]").InnerText.Trim();
Console.WriteLine("序号:" + Id );
}
}
}
做好判断,打好断点调试,总会得到想要的东西的。
内容比较简单,适合新手操作,望大佬对新人友好指点!

浙公网安备 33010602011771号