[转帖]利用HtmlAgilityPack抓取XX网站图片并下载~~~~~~邪恶版。。。。

                                                 !!!--声明啊(运行后,我不是您想的那种人的。。。。。。)--!!
我看到已经有2人反对了这篇文章,真是打击呀,我也没怎么伤天害理嘛,手下留情,please...
由于提前到了学校,昨晚逛博客园的时候,意外发现了HtmlAgilityPack这个好东东,是微软的一个类库,用来分析Html页面的结构啊,等等。。。。。不得不说,HtmlAgilityPack很强大,
我用的很爽啊。。。。
抓取博客园的数据啊等等。。。(我搜了一些,发现仅仅是抓取文字的文章,于是一个邪恶的念头出现咋我脑海中,我就好奇的试了试。一番折腾后,结果是可行的啦,发给我以朋友试了试,结果可以,。。。
语无伦次了。。。(别见怪啊啊))

完整下载

记住哦!,在E盘下新建一个DownLoadImg文件夹
主要代码如下:
    WebClient wc = new WebClient();
private static int i = 0;
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
HtmlWeb web = new HtmlWeb();

string imgurl = "";
//目前一般XX(你懂的...)网站,都是以.../版块/yyyymmdd/一堆数字.html结尾
//由于XX网站一般分为好几个版块,所以每个.html文件在同一版块下并不是连续的
//我用了外层两层循环,最外层循环yyyymmdd(日期如2012-02-15)
//内层是循环每个.html文件,当然你可以自己修改两个循环


for (int k = 20120215; k <= 20120215; k++)

{
for (int j = 124289; j <= 124306; j++)
{


string cnblogs = "";//看这里,需要填写某一网站的格式,在源码下载里有
HtmlDocument doc = web.Load(cnblogs);
HtmlNode node = doc.GetElementbyId("ks_xp");
if (node == null)
{
continue;

}
else
{

foreach (HtmlNode child in node.SelectNodes("//img"))
{
if (child.Attributes["src"] == null)
continue;

imgurl = child.Attributes["src"].Value.ToString();
DownLoadImg(imgurl);
}
}

}
}

}


public void DownLoadImg(string url)
{
i++;
//string newfilename = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + ".jpg";
//罪魁祸首啊,假如用上面的名字做为图片的名字,会有如下问题
//不能把所有图片下载下来,因为时间的粒度是秒,而不是所有的图片都是一秒一张的,所以进程会自动跳过下载。God Bless U--->大蜗牛
string newfilename = i + ".jpg";
string filepath = @"E:\DownLoadImg\" + newfilename;//当然你可以写段自动新建该目录的代码,其实也不难吧o(∩_∩)o ,留给读者自由发挥吧
try
{
wc.DownloadFile(url, filepath);

}
catch (Exception ex)
{

}

}

最后,该小东东,还有很多可以修改的,那就留给读者您吧(请不要喷我。。)
作者:大蜗牛 出处:http://www.cnblogs.com/lixiaofei/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/jadepark/archive/2012/02/16/2354886.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值