前一段时间研究了一下抓取网站的东东,有个很好的工具wget,很多unix操作系统是默认安装的,也有windows版本的wgetwin,大家可以去g一下。
这两天又需要一个抓取网页图片的程序,设想可以通过分析网页源代码获取网页上图片的链接,然后跟踪这些链接获取图片信息,然后下载指定尺寸或大小的图片。
写了一段代码
private void PrintImg(string baseUrl,stringparamID)
{
this.Response.Clear();
string strUrl2=baseUrl+"icon/"+paramID+".gif";
System.Net.HttpWebRequest hwreq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(strUrl2);
System.Net.HttpWebResponse hwrep= (System.Net.HttpWebResponse)hwreq.GetResponse();
System.Drawing.Image bmp = System.Drawing.Image.FromStream(hwrep.GetResponseStream());
System.IO.MemoryStream ms = new MemoryStream();
bmp.Save(ms,ImageFormat.Png);
Response.ClearContent(); //需要输出图象信息 要修改HTTP头
Response.ContentType = "image/gif";
Response.BinaryWrite(ms.ToArray());
this.Response.End();
}
不过通过虚拟路径抓取远程图片时,如果网络很慢或者连接不通的时候会发生异常
所以在GetResponse的时候:
try
{
System.Net.HttpWebResponse hwrep= (System.Net.HttpWebResponse)hwreq.GetResponse();
}
catch
{
throw new ApplicationException("network exception");
}
此方法在获取HttpWebResponse 对象的时候很慢,要了解此情况的存在,布置好你的应用程序
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix