因为花瓣网图片是js动态加载的,而且还是下拉加载,简单的通过查找<img>标签便不是很可行了。
所以最好的方法是分析url,分多次请求;这里面的分析参考http://blog.chinaunix.net/uid-23500957-id-3878770.html
程序实现思路如下:
1.首先访问某一画板主页,例如http://huaban.com/boards/18484185/
2.得到网页源码(不执行js)后,一般有20张图片的信息,存在这么一个json数据里
app.page["board"] = {"board_id":18484185, "user_id":16352918, "title":"可爱动漫", "description":"", "category_id":"anime", "seq":2, "pin_count":178, "follow_count":50, "like_count":1, "created_at":1415945887, "updated_at":1419412105, "deleting":0, "is_private":0, "extra":null, "user":{"user_id":16352918, "username":"爱吃饭团的小小泽", "urlname":"jbnihpdw84", "created_at":1415945122, "avatar":{"id":63028007, "farm":"farm1", "bucket":"hbimg", "key":"31ccfe5585d691cd7b6d48959397eec51daf5bae1d7b6-G3Fatz", "type":"image/jpeg", "width":720, "height":960, "frames":1}, "pin_count":3643, "board_count":67, "like_count":2, "follower_count":300, "creations_count":0, "boards_like_count":0, "following_count":83, "commodity_count":15, "profile":{"location":"", "sex":"0", "birthday":"", "job":"", "url":"", "about":""}, "status":{"emailvalid":false, "newbietask":0, "lr":1421675510, "invites":0, "share":"0"}}, "category_name":"动漫", "following":false, "liked":false, "pins":[{"pin_id":297911086, "user_id":16352918, "board_id":18484185, "file_id":65136253, "file":{"farm":"farm1", "bucket":"hbimg", "key":"8b5906dc77a84e6bdbdfda7d882378dfb3e8401724273-RFklTX", "type":"image/jpeg", "width":1024, "height":1575, "frames":1, "theme":"FAF8F0"}, "media_type":0, "source":"donmai.us", "link":"http://donmai.us/posts/1880339?tags=touhou", "raw_text":"#东方project#\n#娜兹玲#", "text_meta":{"tags":[{"start":0, "offset":11}, {"start":12, "offset":5}]}, "via":297275179, "via_user_id":6303198, "original":297275179, "created_at":1419412104, "like_count":0, "comment_count":0, "repin_count":2, "is_private":0, "orig_source":null, "hide_origin":false}, {"pin_id":297910029, "user_id":16352918, "board_id":18484185, "file_id":65137757, "file":{"farm":"farm1", "bucket":"hbimg", "key":"67f6920b0f1cc039c251b3a4d467b27464830fcc5240b-SC07Pk", "type":"image/jpeg", "width":621, "height":869, "frames":1, "theme":"F6EADB"}, "media_type":0, "source":"pixiv.net", "link":"http://www.pixiv.net/member_illust.php?mode=medium&illust_id=47696761", "raw_text":"#东方project#\n#今泉影狼##博丽灵梦##雾雨魔理沙#うちの子。", "text_meta":{"tags":[{"start":0, "offset":11}, {"start":12, "offset":6}, {"start":18, "offset":6}, {"start":24, "offset":7}]}, "via":297288273, "via_user_id":6303198, "original":297288273, "created_at":1419412016, "like_count":0, "comment_count":0, "repin_count":28, "is_private":0, "orig_source":null, "hide_origin":false}, ...
3.我们用如下正则表达式,提取图片的pinId,图片的key(用于得到图片的地址),图片类型
private List<Img> parsePinsFromXml(String xmlStr) {
List<Img> pins = new ArrayList<Img>();
String pattern = "\\{\"pin_id\":(\\d+),.+?\"key\":\"(.+?)\",.\"type\":\"image/(.+?)\",";
// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);
// 现在创建 matcher 对象
Matcher m = r.matcher(xmlStr);
while (m.find()) {
Img pin = new Img();
System.out.println(m.group());
pin.setPinId(m.group(1));
pin.setKey(m.group(2));
pin.setType(m.group(3));
pins.add(pin);
System.out.println(pin.getPinId()+","+pin.getKey()+","+pin.getType());
}
return pins;
}
4.一般返回的是20个pin,我们选取最后一个pinId,使用如下url继续访问网站,获取接下来的20个pin,直至得到所有的pin,或是无法获得更多的pin
url = this.boardUrl + "?max=" + img.getPinId() + "&limit=20&wfl=1";
其中,boardUrl = "http://huaban.com/boards/18484185/"
5.到这一步,已经有所有图片的key值了
例如,31ccfe5585d691cd7b6d48959397eec51daf5bae1d7b6-G3Fatz
再两端分别加上"http://img.hb.aicdn.com/"与"_fw658"即可得到大图地址
6.到这儿就不用多说了,根据图片url把图片下载到指定位置即可
最终下载到的图片:
所附jar,需运行在jre8.0上
- 大小: 27.7 KB
- 大小: 34.1 KB
- 大小: 58.1 KB
- 大小: 453.2 KB
分享到:
相关推荐
仿花瓣网的图片以瀑布流效果展示。 效果案例:http://www.movie366.com/tuijian/today.html
花瓣网图片淡入淡出轮播图
高仿花瓣网源码简介 高仿花瓣网源码是基于thinksns进行开发的分享类网站源码。 Pinterest是最火爆、最受关注的图片 兴趣分享类网站。Pinterest名称由Pin(图钉) Interest(兴趣)组成,寓意为把自己感兴趣的东西...
PHP实例开发源码—高仿花瓣网源码 php版.zip PHP实例开发源码—高仿花瓣网源码 php版.zip PHP实例开发源码—高仿花瓣网源码 php版.zip
网站图片爬虫(已包含:微博,微信公众号,花瓣网)及免费IP代理 豆瓣电影爬虫
是花瓣网的资源收集工具
程序介绍:程序自带2个模板,花瓣网、 知美网目前主要功能:1、淘宝客,允许后台设置淘宝客帐号2、分享本地图片3、分享网络图片4、采集工具5、分享视频6、专题功能7、基于thinksns,可以轻易的添加官方的应用(群组...
花瓣网花瓣爬虫
花瓣网知美网源码仿Pinterest源码ThinkSNS 2.3商业版
花瓣网布局demo.zip
轻博客源代码 ,经过测试可以使用 轻博客,类似花瓣网,点点网的轻博客
仿Pinterest源码(ThinkSNS内核
jquery图片延迟加载花瓣网首页图片波浪条纹排列加载
更新内容: 内核更新到thinksns 2.8 目前主要功能: ...3.针对中小站长、淘宝客、网店设计,提供商品信息抓取、图片抓取等必备功能 4.URL伪静态,增强搜索引擎收录,有效提高SEO效果 5.强大的采集工具
仿花瓣、兴趣图谱,版本虽然不是最新的,但是保证可以用!大家可以下载看喜欢么!
花瓣网登录滑动展出jQuery组件。欢迎下载
该软件基于thinksns进行开发,高仿花瓣网分享网站。 Pinterest是最火爆、最受关注的图片 兴趣分享类网站。Pinterest名称由Pin(图钉) Interest(兴趣)组成,寓意为把自己感兴趣的东西(图片)用图钉钉在钉板...
2016花瓣官网首页模板,网上收集的,仅仅用于学习
线条、花瓣,淡雅蓝色背景图片模板