Java爬虫:爬取豆瓣图片之分析

来源:互联网 发布:淘宝云客服培训资料 编辑:程序博客网 时间:2024/04/29 01:23

1、“右键另存为”引发的需求

        这些天逛豆瓣看到了好多好料子,但重复性地“右键另存为”让手都点酸了。。。身为一个准IT民工当然要用代码来简化生活,刚好最近在用Java开发,想学点Http方面的东西,于是萌发了自己写一个爬虫程序来爬取豆瓣图片的想法。或者以后再修改修改,爬个草榴也不错。


2、基本思路+工具准备

        通过搜索资料了解到,做一个简单的爬虫,只需要知道目标网页的URL,然后使用支持HTTP协议的客户端编程工具包——HttpClient,模仿浏览器客户端向该URL发起请求,获取目标网页源码(其实浏览器的工作就是解析这些XML格式的数据信息,并呈现出来),从数据中提取自己想要的信息,如图片的URL,然后再用输入输出流获取图片,保存在本地文件,即实现了自动Download图片。

        开发工具:eclipse

        工具包:http工具包我只是看网上别人写的爬虫程序使用到过,具体哪些可以去掉我也不清楚,望各位解答。

        


3、目标分析+特征提取

       这就是爬取目标,豆瓣的某个小组相册:


        右键查看源代码:找到图片链接所在的<div>图层,如图<div class="photo_warp">即是照片的链接。



        不过点开这里的<img src="xx">链接,显示的只是很小的缩略图,真正要看原图片的话,需要点击<a href="xxx">链接(在浏览器上表现为点击图片),跳转到显示大图的网页:


        右键查看网页源代码,找到该图片位置,<div class="image-show">下的<img src="xxx">:


        点击<img>标签的链接,找到了最原始的图片:


        功夫不负有心人,总算让我找到最初的图片链接了。回顾一下流程:获取相册页面数据,提取<div class="photo_warp">中的<a href="xxx">链接,获取相册显示单张图片的页面的数据,提取<div class="image-show">下的<img src="xxx">链接,下载图片

        另外我发现,相册主页面的URL都很有特点,后缀都是"http://www.douban.com/xxx/xxx/xx/?start=xx",最后面是数字,每下一页就加18,- - 虽然不知道为什么,但是又有规律可循就OK了,可以循环抓啦。


4、开始写代码啦

        从相册第一页抓起,所有图片存放在E盘豆瓣图片的文件夹下,按照抓起的页面分子文件夹。

        代码详见另一篇博文

        《初涉爬虫:爬取豆瓣图片之代码》http://blog.csdn.net/allhaillouis/article/details/20700123


5、最终效果展示



6、后记

        啊哈哈~~O(∩_∩)O~~从此我脱离了“右键另存为”的屌丝生活了,代码再改一改就可以直接去爬草榴了。


7、再后记

        额,- - 把这些图片下完后,豆瓣好像判断出了我是在用爬虫访问,现在用浏览器都不能访问相册。。。囧,怎么判断出的,有什么方法可以绕过这个?还有。。。。。什么时候把我解封啊。。。。。。


8、再再后记

        没事了,只要设置好延时、爬取频率不要太快、设置阈值跳出循环,就不会被禁了。Good luck。

     


0 0
原创粉丝点击