[Java教程]一个更加简单粗暴的爬虫

0

2017-09-30 16:00:13

今天上午看到一篇文章:一个简单粗暴的爬虫 - 必应今日美图。我也用自己的方式更加简单的实现了这个功能。下面我就贴一下自己的代码和思路。

我就不分析原博的思路了,原博写的很清楚。我用的是htmlunit,从原博的第三步开始,观察三级地址的规律, > 1 import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; 2 import com.gargoylesoftware.htmlunit.WebClient; 3 import com.gargoylesoftware.htmlunit.html.HtmlAnchor; 4 import com.gargoylesoftware.htmlunit.html.HtmlPage; 5 import org.apache.commons.io.FileUtils; 6 7 import java.io.File; 8 import java.io.IOException; 9 import java.io.InputStream;10 import java.net.MalformedURLException;11 12 /**13 *

14  * class intro15  * 

16 *

17 * Created by fujun on 2017/9/29.18 */19 public class BingPhoto {20 public static void main(String[] args) {21 WebClient webClient = new WebClient();22 webClient.getOptions().setCssEnabled(false);23 webClient.getOptions().setJavaScriptEnabled(false);24 for (int i = 1; i < 491; i++) {25 String url = "http://bing.plmeizi.com/show/" + i;26 try {27 HtmlPage page = webClient.getPage(url);28 HtmlAnchor a = (HtmlAnchor) page.getElementById("picurl");29 String picUrl = a.getHrefAttribute();30 if (picUrl.contains("jpg")) {31 InputStream inputStream = webClient.getPage(picUrl).getWebResponse().getContentAsStream();32 FileUtils.copyToFile(inputStream, new File("E://bingpic//" + i + ".jpg"));33 System.out.println("SUCCEED:" + url);34 } else {35 System.out.println("FAILED:" + url);36 }37 38 } catch (FailingHttpStatusCodeException e) {39 // TODO Auto-generated catch block40 e.printStackTrace();41 } catch (MalformedURLException e) {42 // TODO Auto-generated catch block43 e.printStackTrace();44 } catch (IOException e) {45 // TODO Auto-generated catch block46 e.printStackTrace();47 } finally {48 webClient.close(); // 关闭客户端,释放内存49 }50 }51 }52 }

注意点:

有些页面是404的,例如 src='/images/loading.gif' data-original="http://images2017.cnblogs.com/blog/1250684/201709/1250684-20170930150215075-698272723.png" alt="">

本文网址:http://www.shaoqun.com/a/327023.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

java爬虫好的教程_[Java教程]一个更加简单粗暴的爬虫相关推荐

  1. java 微信群发多图文_[Java教程]httpClient实现微信公众号消息群发

    [Java教程]httpClient实现微信公众号消息群发 0 2016-09-21 20:00:10 1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信ope ...

  2. java播放器使用教程_[Java教程]Java音乐播放器

    [Java教程]Java音乐播放器 0 2016-01-07 12:00:09 乐乐音乐目前是基于musique开发的一个java音乐播放器,之前开发了一个android版本的音乐播放器,现在把and ...

  3. webservice java教程_[Java教程]JAVA开发Webservice——JAXB

    [Java教程]JAVA开发Webservice--JAXB 0 2016-01-19 17:00:04 JAXB(Java API for JAXB 可以实现Java对象与 下面来了解一下如何通过标 ...

  4. Java国际化教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 Java国际化入门教程 - 从简单的步骤了解Java国际化从基本到高级概念,包括概述,环境设置,区域设置,区域设置详细信息,显示语言,ResourceBundle,NumberFormat, ...

  5. Java Regex 教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 正则表达式不仅仅是Java的技术,在任何一门编程语言中都会存在,是一种通用的IT技术,其理念和用法在任何编程语言中基本一致,除了有一些由于语言不同而导致的一些语法不同正则表达式,主要用于匹配 ...

  6. Ruby教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License.它的灵 ...

  7. java 工厂模式的写法_[java设计模式] 工厂模式解析

    什么是工厂模式? 我的总结是: 遵守软件设计中的开闭原则和依赖反转原则, 并且客户端只需通过参数来创造多个对象, 并且在创建过程中,创建对象的过程对客户端是透明的. 这种开发模式叫做工厂模式. 出现原 ...

  8. java继承与实现的_[Java学习] Java继承的概念与实现

    继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似. 继承可以理解为一个类从另一个类获取方法和属性的过程.如果类B继承于类A,那么B就拥有A的方法和属性. ...

  9. shopify二次开发教程_详细教程:如何将Shopify的Storefront API与React和Redux结合使用...

    shopify二次开发教程 by Chris Frewin 克里斯·弗里温(Chris Frewin) 详细教程:如何将Shopify的Storefront API与React和Redux结合使用 ( ...

最新文章

  1. 碰到Maven依赖冲突,想砸电脑?这个IDEA插件必须了解一下...
  2. 导入eclipse工程到Android Studio中
  3. 洛谷 [P1282] 多米诺骨牌
  4. python3数据库表关联_Django中数据库操作|python3教程|python入门|python教程
  5. 单片机数据在网页上显示_不务正业的Excel也玩地图,在地图上显示数据,好玩又简单...
  6. 开发物体识别桌、_想用人工智能实现安全风险管控?快来试试EasyMonitor一站式视频监控开发平台...
  7. java socket 路由_JAVA简单的Socket网络编程!CS
  8. leetcode121买卖股票的最佳时机
  9. uniapp使用阿里图标库
  10. 计算机使用知识大赛,计算机基础知识大赛 抢答题范围
  11. 人体3D重建-ICON论文解读
  12. C#里的InputBox
  13. python开发要学什么_运维为什么要学编程?编程为什么是Python?
  14. 自动化工具之UIAutomator
  15. 支持H.265视频网页Web播放的EasyPlayer.js设计理念与功能计划
  16. HL6601高性价比多种快充协议芯片QC3.0QC2.0华为FCP,SCP.VOOV苹果三星快充协议
  17. 2021年杭州值得去的46家规模互联网大厂公司全名简称
  18. 【JY|土木】失稳你过来,我们谈谈吧。
  19. android 拍照 华为,【华为MateRS保时捷版评测】拍照:徕卡三摄登顶DxOMark名副其实_华为 Mate RS保时捷版_手机评测-中关村在线...
  20. 雷塞DMC3600运动控制注意事项和解决办法

热门文章

  1. 远程监控电脑屏幕用什么软件?
  2. ICRA 2021|用于LiDAR里程计和建图的Poisson表面重建
  3. struts2+Hibernate实现名片管理系统
  4. 买卖股票的最好时机(三)
  5. SSL证书是如何保证网站安全的
  6. 横河、力科、泰克三种示波器的触发功能对比
  7. adobe cep html engine 停止工作,ps2019adobe cep html engine应用程序错误怎么办?
  8. ssstab(网页端)
  9. 基于Python的图像拉普拉斯变化/图像锐化实现
  10. 张垭飞VIP SEO课程