使用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 );
                }
            }
        }

做好判断,打好断点调试,总会得到想要的东西的。

内容比较简单,适合新手操作,望大佬对新人友好指点!

posted @ 2020-11-10 11:06  乐优丶刘  阅读(219)  评论(0)    收藏  举报