C#编写网络爬虫爬取网页流和图片

最近开始学一下c#编写爬虫,发现了一个很好的视频资源,然后就在学习之余,做一些笔记。
视频资源链接:https://www.bilibili.com/video/av11424797/?spm_id_from=333.788.videocard.1

第一个小例子,使用net来进行网站源码的读取,其中的各项数据都是可以通过谷歌浏览器的开发工具按钮中的network得到。

    class Program
    {
        static void Main(string[] args)
        {

            //建立一个请求
            string Url = "https://baike.baidu.com/item/using/232450";
            HttpWebRequest Myrq = WebRequest.Create(Url) as HttpWebRequest;
            Myrq.KeepAlive = false;//持续连接
            Myrq.Timeout = 30 * 1000;//30秒,*1000是因为基础单位为毫秒
            Myrq.Method = "GET";//请求方法
            Myrq.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3";//自己去network里面找
            Myrq.Host = "baike.baidu.com";
            Myrq.Referer = "https://www.baidu.com/link?url=4kZCAq87BmnGJcjYDZnn7vaR2N1Zyd3zXzbUlHrb1Vi9jTWf1wsN4mJixYl4bQuHUaxxPOpzUDvfx21TRtSySK&wd=&eqid=c571cf7b000fc0d5000000055d2004e3";
            Myrq.UserAgent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36";

            //接受返回
            HttpWebResponse Myrp = (HttpWebResponse )Myrq.GetResponse();
            if(Myrp.StatusCode !=HttpStatusCode.OK )
            { return; }
            using (StreamReader rd = new StreamReader(Myrp.GetResponseStream()))
            {
               Console.WriteLine(rd.ReadToEnd() );

            }
            Console.ReadKey();

输出如下:
C#编写网络爬虫爬取网页流和图片_第1张图片
network中的第一个就是该网站的请求头等 。
下面的这些图片请与代码结合着来看
C#编写网络爬虫爬取网页流和图片_第2张图片
在这里插入图片描述
C#编写网络爬虫爬取网页流和图片_第3张图片
第二个小例子,开始爬取图片了,这个url是作者随便找的一个网站的图片的请求头,
你们也可以自己换一下。

           //建立一个请求
            string Url = "http://pic.netbian.com/uploads/allimg/190630/215651-1561903011838a.jpg";
            HttpWebRequest Myrq = WebRequest.Create(Url) as HttpWebRequest;
            Myrq.KeepAlive = false;//持续连接
            Myrq.Timeout = 30 * 1000;//30秒,*1000是因为基础单位为毫秒
            Myrq.Method = "GET";//请求方法
            Myrq.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3";//自己去network里面找
            Myrq.UserAgent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36";

            //接受返回
            HttpWebResponse Myrp = (HttpWebResponse )Myrq.GetResponse();
            if(Myrp.StatusCode !=HttpStatusCode.OK )
            { return; }
            
            using (FileStream fl = new FileStream("1.jpg", FileMode.Create))//展开一个流
            {
                Myrp.GetResponseStream().CopyTo(fl);//复制到当前文件夹
            }

我们可以看到其实两块代码差别并不大,其中只有很小的差别。

你可能感兴趣的:(C#)