LOFTER是网易公司2011年8月下旬推出的一款轻博客产品。
LOFTER专注于为用户提供简约、易用、有品质、重原创的博客工具、原创社区,以及有品质的手机博客应用。
LOFTER首次采用独立域名,口号为”专注兴趣,分享创作”。 一经上线,便受到了互联网众多文艺青年、摄影师、插画师的喜爱。

作为中国的Instagram,自然是很多人爬虫的目标,之前我写过一篇关于如何电脑批量上传Instagram图片的文章,这次来点高级的,来做一个lofter的批量下载器.

环境

eclipse, selenium包, firefox

目标

制作下载器,输入用户名,下载其账户上的所有照片

原理介绍

“http://” + username + “.lofter.com/view”是lofter提供的用户图片摘要视图,可以通过ajax动态加载的方法在一张网页上显示出用户所有的图片.我们就可以通过selenium模拟用户滚动瀑布流,再通过ECMAScript捕捉到所有图片的url,最后利用java发送get包下载所有图片.

准备工作

为了节省流量和时间,我们既不加载图片(加载出来的只是缩略图,没用),也不要加载界面了(节省本地资源).
注意,这两个节省是相互独立的.

FirefoxOptions options = new FirefoxOptions();

    // 启动配置"不加载图片"options.addPreference("permissions.default.image", 2);// 启动参数"无界面"FirefoxBinary myBinary = new FirefoxBinary();myBinary.addCommandLineOptions("--headless");options.setBinary(myBinary);

FirefoxDriver driver = new FirefoxDriver(options);

实现方式

下一篇文章将公布源码

  • 键入pageDown键以触发ajax瀑布流
  • 通过Dom元素的element.children.length属性值的累加获得图片总数
  • 在控制台输出所有url(暂停),以便核实再下载
  • 开启多线程超时跳过机制,防止损坏的url
  • 设置selenium的隐式等待和显式等待

注意事项

在经过了多次试验之后得到的最优方案.

  • 利用页面提供的数据(页首’文章数量’字段)可以得到用户全部的图片数量以供参考
  • 循环检测的时候不要傻不拉几的数元素的数量,而要通过length值直接获得,因为JS比java要脆弱的多
  • 结束标志最好基于数量增长周期超时
  • url需要裁剪,去掉问号之后的参数(这些参数用来生成缩略图)
  • 下载时切记从流的头字节获取mime信息,用来生成后缀名

源码请见下文.

selenuim爬虫实战(日lofter.com)相关推荐

  1. 今日头条文章爬虫实战

    原 java爬虫系列 今日头条文章爬虫实战 置顶 2018年03月26日 16:55:31 Mr_OOO 阅读数:3868更多 <div class="tags-box space&q ...

  2. python爬虫实战-网易BUFF CSGO饰品

    python爬虫实战-网易BUFF CSGO饰品 寒假迷上了csgo,一方面对这个纯粹的枪战游戏着迷,另一方面对精美的饰品着迷.众所周知,csgo是个理财游戏饰品游戏,能够掌握到喜欢饰品的价格就可以得 ...

  3. 爬虫实战-链家北京房租数据

    爬虫实战-链家北京房租数据 本篇是对 恋习Python 发布的原创文章<北京房租大涨?6个维度,数万条数据帮你揭穿>中涉及的代码部分的解读. < 在复现原文代码时,出现了一些报错,在 ...

  4. python爬虫实战-bs4爬取2345电影

    抓取的原理也比较简单,不过多解释了,代码注释的也比较清楚 参考: Python网络爬虫实战(第二版) # -*- coding: utf-8 -*- """ Create ...

  5. 转 Python爬虫实战一之爬取糗事百科段子

    静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...

  6. Python 网络爬虫实战:猫眼电影 38950 条评论数据告诉你《无名之辈》是否值得一看?

    11月16日,一部无流量明星.无大制作.无大IP的"三无"国产电影<无名之辈>上映后,竟然连续打败了超级英雄"毒液".会魔法的"神奇动物& ...

  7. 网易云音乐爬虫实战——肖战《红梅赞》下评论数据挖掘与分析

    网易云音乐爬虫实战--肖战<红梅赞>下评论数据挖掘与分析 前言 本章工具 数据挖掘部分 1.获取歌曲评论 2.根据ID获取用户信息 数据分析部分 1.评论数时间分布 2.评论内容词云 3. ...

  8. Python爬虫实战(3)古诗文网

    Python爬虫实战(3)古诗文网 网页分析 代码 注意事项 输出结果 利用BeautifulSoup和和requests库实现古诗文网的古诗抓取 运行平台: Windows Python版本: Py ...

  9. 虾米音乐爬虫实战分析 批量下载虾米音乐到本地

    刚开始我是奔着抓API的,发现翻页的参数不好找,后来看到搜索出来的歌曲都存在当前url中,翻页只需更换浏览器中的url参数即可:https://www.xiami.com/list?page=1&am ...

最新文章

  1. Go 学习笔记(79)— Go 标准库 net(获取本机IP地址)
  2. js java cookie_JS 打开一个模式窗口,使用Cookie传递一个参数
  3. java int数列转字符串,鍥剧墖杞瓧绗︿覆
  4. php递归复制文件内容,PHP递归复制整个文件夹
  5. 【dijkstra模板】旅游规划 (25 分)
  6. C++ class实现顺序队列(完整代码)
  7. AliOS Things蓝牙协议栈及应用开发框架介绍
  8. memcached的缺点
  9. 借一本可以编辑HTML,index.html
  10. [RocketMQ]消息中间件—RocketMQ消息消费(一)
  11. extjs2.0 ie8 下拉树_extjs2下拉树选项框comboxWithTree(支持异步加载子节点)
  12. SOA项目技术实施指南
  13. Python:创建GUI界面步骤
  14. java毕业设计——基于java+JSP+MyEclipse的网上订餐系统设计与实现(毕业论文+程序源码)——网上订餐系统
  15. 杭州SEO:独家揭秘网站首页排版布局的详细方法!
  16. 吊打面试官的硬核法宝~阿里架构师最新总结软件测试面试宝典
  17. 有赞会不会成为去中心化流量时代的淘宝
  18. 通过搜索引擎快速寻找漏洞
  19. paper:Attention Is All You Need(模型篇)
  20. 华为无线设备配置静态负载均衡

热门文章

  1. 一个补丁迭代了16个版本后被撤,我的 Linux内核之旅!
  2. 今日头条面试——测试工程师
  3. ac68u 搭建php,华硕RT-AC68U无线路由器深度体验
  4. elasticsearch安装 及 启动异常解决
  5. 【论文阅读】[CVPR 2018] PU-Net: Point Cloud Upsampling Network. [tensorflow] [rec. oth.]
  6. 【Unity3D】拖尾TrailRenderer
  7. android 读build.prop,Android系统下的build.prop文件
  8. 使用这些方式让你的ipad拥有更长的使用寿命
  9. AWS CLI 安装配置
  10. 刚刚!华为突然传来这一消息,我想辞职回家养猪了!