首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用HtmlAgilityPack库采集美图秀秀图片

上次有个美女跟我说美图秀秀官网的图片都好漂亮,既然美女都开口了,我能说什么呢?于是,我就用HtmlAgilityPack库写了一个C#爬虫程序,专门来采集美图秀秀的图片,看着网站挺复杂,不过这个爬虫写起来倒是一点也不难,这就给大家分享。

```csharp

using System;

using System.Net;

using HtmlAgilityPack;

class Program

{

static void Main(string[] args)

{

// 创建一个WebClient对象,设置代理服务器

WebRequest request = WebRequest.Create("https://xiuxiu.meitu.com/");

request.Proxy = new WebProxy("https://www.duoip.cn/get_proxy", 8000);

request.UseDefaultCredentials = true;

WebResponse response = request.GetResponse();

// 创建一个HtmlDocument对象,解析网页

HtmlDocument doc = new HtmlDocument();

doc.Load(response.GetResponseStream());

// 获取所有图片的链接

HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//img[@src]");

foreach (HtmlNode node in nodes)

{

string imageUrl = node.Attributes["src"].Value;

// 使用代理服务器下载图片

byte[] imageBytes = DownloadImage(imageUrl);

// 将图片保存到本地

SaveImage(imageBytes, imageUrl);

}

}

// 使用代理服务器下载图片

static byte[] DownloadImage(string imageUrl)

{

WebRequest request = WebRequest.Create(imageUrl);

request.Proxy = new WebProxy("https://www.duoip.cn/get_proxy", 8000);

request.UseDefaultCredentials = true;

WebResponse response = request.GetResponse();

return response.GetResponseStream().ReadBytes();

}

// 将图片保存到本地

static void SaveImage(byte[] imageBytes, string imageUrl)

{

// 创建一个FileStream对象,用于写入文件

using (FileStream fs = new FileStream(imageUrl, FileMode.Create, FileAccess.Write))

{

// 将图片数据写入文件

fs.Write(imageBytes, 0, imageBytes.Length);

}

}

}

```

以上代码首先使用WebClient对象创建一个HTTP请求,并设置代理服务器。然后,使用HtmlAgilityPack库解析网页,并获取所有图片的链接。对于每个图片链接,下载并保存到本地。需要注意的是,这个程序只能下载网页上的图片,不能爬取网页上的其他内容。如果需要爬取整个网页的内容,需要修改代码以适应不同的需求。同时,程序的性能和稳定性,需要根据实际情况进行调整。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Og_WhDYX8eq-3u540Am3Icjg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券