• 使用Jsoup抓取网站上的图片、链接


    以 http://www.zgfjqw.roboo.com/ 中国风景区网为例,我们想要抓取首页的所有图片。

    使用Jsoup可以轻松实现。

    代码及注释如下:

     1 package test;
     2 import java.io.*;
     3 import java.net.URL;
     4 import java.io.IOException;
     5 import org.jsoup.Jsoup;
     6 import org.jsoup.nodes.Document;
     7 import org.jsoup.nodes.Element;
     8 import org.jsoup.select.Elements;
     9 
    10 public class DownloadImages 
    11 {
    12     public static void main(String[] args) throws IOException   
    13     {
    14         //目标网站
    15         String url = "http://www.zgfjqw.roboo.com/";
    16         //获取到的图片的存储位置,这里采用的是相对路径,存储到项目中的img文件夹下
    17         String path = "img";
    18         Document doc = Jsoup.connect(url).timeout(100000).get();
    19         //获取所有图像元素
    20         Elements results = doc.getElementsByTag("img");
    21         for(Element e : results)
    22         {
    23             //获取图像的url
    24             String src = e.absUrl("src");
    25             //存储到本地的函数
    26             storeImg(src, path);
    27         }
    28         System.out.println("运行结束");
    29     }
    30     
    31     //从文件的url获得其文件名,比如http://www.zgfjqw.roboo.com/a/b/c.gif转化为c.gif
    32     private static String getName(String src)
    33     {
    34         int index = src.lastIndexOf('/');
    35         return src.substring(index);
    36     }
    37 
    38     //将src存储到path中
    39     private static void storeImg(String src, String path) throws IOException 
    40     {        
    41         String name = getName(src);
    42         URL url = new URL(src);
    43         InputStream in = url.openStream();
    44         OutputStream out = new BufferedOutputStream(new FileOutputStream(path + name));
    45         for(int r;(r = in.read()) != -1; )
    46         {
    47             out.write(r);
    48         }
    49         in.close();
    50         out.close();
    51     }
    52 }

    以 http://www.cnblogs.com/huoxiayu/ 我的博客为例,我们想要抓取该页面的所有链接。

     1 package test;
     2 import java.io.IOException;
     3 import org.jsoup.Jsoup;
     4 import org.jsoup.nodes.Document;
     5 import org.jsoup.nodes.Element;
     6 import org.jsoup.select.Elements;
     7 
     8 public class ExtractLinks 
     9 {
    10     public static void main(String[] args) throws IOException   
    11     {
    12         String url = "http://www.cnblogs.com/huoxiayu/";
    13         Document doc = Jsoup.connect(url).get();
    14         Elements results = doc.select("a[href]");
    15         System.out.println("Total " + results.size() + " links");
    16         for(Element e : results)
    17         {
    18             String name = e.text();
    19             String href = e.attr("abs:href");
    20             System.out.println(name + " : " + href);
    21         }
    22         System.out.println("运行结束");
    23     }
    24 }
  • 相关阅读:
    libv4l 库【转】
    Leap Motion颠覆操控体验的超精致手势追踪技术【转】
    嵌入式Linux下Camera编程--V4L2【转】
    C语言高级应用---操作linux下V4L2摄像头应用程序【转】
    通过摄像头设备采集一帧数据的例子程序(完整版)【转】
    V4L2 camera 驱动 capture测试程序【转】
    v4l2 spec 中文 Ch01【转】
    Video for Linux Two API Specification Revision 2.6.32【转】
    Video for Linux Two API Specification revision0.24【转】
    OpenCV实践之路——人脸检测(C++/Python) 【转】
  • 原文地址:https://www.cnblogs.com/huoxiayu/p/5461477.html
Copyright © 2020-2023  润新知