读书人

利用HtmlAgilityPack抓取XX网站图片并

发布时间: 2012-09-21 15:47:26 作者: rapoo

利用HtmlAgilityPack抓取XX网站图片并下载~~~~~~邪恶版

由于提前到了学校,昨晚逛博客园的时候,意外发现了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)        {        }    }最后,该小东东,还有很多可以修改的,那就留给读者您吧(请不要喷我。。)
1 楼 greatwqs 2012-02-18 看了前面的HTTP, 原来楼主也做爬虫~

读书人网 >CSS

热点推荐