上次有个美女跟我说美图秀秀官网的图片都好漂亮,既然美女都开口了,我能说什么呢?于是,我就用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库解析网页,并获取所有图片的链接。对于每个图片链接,下载并保存到本地。需要注意的是,这个程序只能下载网页上的图片,不能爬取网页上的其他内容。如果需要爬取整个网页的内容,需要修改代码以适应不同的需求。同时,程序的性能和稳定性,需要根据实际情况进行调整。
领取专属 10元无门槛券
私享最新 技术干货