至今也看了三年煎蛋网了,特中意其中的无聊图。

但是我经常没时间一页一页看,所以就琢磨着下载下来一起看。如果实在Linux下就生龙活虎了,但是现在是Windows。

无奈之下我只好另想对策。

在Linux下用惯了wget,上网一搜还真有Windows版本。

煎蛋粉或许会注意到煎蛋是基于WordPress建立的,然后妹子图和无聊图其实就是一个页面下面有大量评论。这样子我们就得到一个很有意思的特性,就是无聊图和妹子图网址的规律:

妹子图:http://jandan.net/xxoo/page-  +  page_id  +  #comments

无聊图:http://jandan.net/pic/page-  +  page_id  +  #comments

通过下面命令就能将页面的源代码下载下来,并且保存在source.dat文件中。

wget http://jandan.net/pic/page-page_id#comments -q -O source.dat

然后用C++写一个代码抓取源代码中的图片链接,最后仍然用wget下载图片:

wget pic_url

当然,事情不会这么快就结束,用户的需求是永远无法满足(我自己是用户)。

后来我就考虑优化一下效率,分析了一下源代码,当代码查找到

<li class="row" id="comment-

串的时候才开始执行图片链接抓取程序。

后来我又发现,一个页面一个页面下载太麻烦了,能否挂机下载呢?

于是我加了个for循环,支持输入起始页面和结束页面,后来又加了个选择下载妹子图或者无聊图的功能。嗯哼,这样子看起来人性化多了!

不一会,我又想抓取这张图片的oo数量和xx数量,然后用这个来命名图片。

实现这个功能之后,程序还是下载了。然后我发现了新问题!

大批oo数量和xx数量相同的图片被覆盖了。

呵呵,我真是天才:于是我在图片名称前面加上了页面号码。

还是不行!无奈只能在最后加上一个ID表示第几张图片,终于不覆盖了。

wget -q -nc -O picpath picname picurl[i]

程序下载一切正常:

但是这样子我还是不满意,一大堆图片放在同一个文件夹里让人眼花缭乱。

于是我根据oo数量减去xx数量得到的数值进行分类,将图片下载到不同文件夹下。

这样子看起来好多了,啊哈哈!

好啦,可以收工了!用休息时间写的这个玩意儿,断断续续写,断断续续测试,历时一个礼拜。最后送上一张下载好的图片的截图,不说了,我要去看图啦!

转载保留版权:http://haipz.com/blog/i/5345 - 海胖博客