c#抓取网页数据(学一下c#编写爬虫,发现了一个很好的视频资源)
优采云 发布时间: 2021-11-21 08:22c#抓取网页数据(学一下c#编写爬虫,发现了一个很好的视频资源)
最近开始学习c#写爬虫,找到了一个不错的视频资源,然后在学习的时候做一些笔记。
视频资源链接:
第一个小例子是用net读取网站的源码。其中的所有数据都可以在谷歌浏览器的开发工具按钮中通过网络获取。
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();
输出如下:
网络中的第一个是网站的请求第一类。
请结合以下图片和代码查看
第二个小例子,开始抓取图片,这个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);//复制到当前文件夹
}
我们可以看到,两段代码其实并没有太大的区别,只有很小的区别。