Jsoup 标签选择器 选择img标签中src的值

package com.enation.newtest;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class TestUrl {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //System.out.println("");
        String url="http://www.qq.com/";
        String encoding="gb2312";
        //1.根据网络和页面的编码集 抓取网页的源代码
        String htmlResouce=GetHtmlResouceByURL(url, encoding);
        System.out.println(htmlResouce);
                
        //2.解析网页的源代码 jsoup jar包
        Document document = Jsoup.parse(htmlResouce);
                
        //ex:抓取图片例子 图片 标签<img src=" " alt=" " width=" " height=" ">
        Elements elements=document.getElementsByTag("img");
        for(Element element : elements) {
            String imgSrc=element.attr("src"); //获取src属性的值
            System.out.println(imgSrc);
            //下载到本地文件夹中
            //downImgs(imgSrc, "D:\nouse");
        }
    }

    /**
     * 根据网址和页面的编码集 抓取网页
     * @param url 网址
     * @param encoding 网页的编码集
     * @return 源代码
     * 
     * */
    public static String GetHtmlResouceByURL(String url,String encoding){
        
        // 建立容器存储网页源代码
        StringBuffer buffer=new StringBuffer();
        URL urlobj=null;
        URLConnection uc =null;
        InputStreamReader isr=null;
        BufferedReader input=null;
        try {
            //建立网络连接
            urlobj =new URL(url);
            //打开网络连接
            uc = urlobj.openConnection();
            //建立网络输入流
            isr=new InputStreamReader(uc.getInputStream(),encoding);
            //建立缓冲流读输入的数据
            input=new BufferedReader(isr);
            
            //循环遍历数据
            String line=null;
            while((line=input.readLine())!=null){
                //添加换行
                buffer.append(line+"
");
            }
            
        } catch (Exception e) {
            // TODO Auto-generated catch block
            
            e.printStackTrace();
            System.out.println("连接源代码失败");
        }finally{
            try {
                if(isr!=null)
                    isr.close();
                if(input!=null)
                    input.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println("关闭失败");                
            }
        }
        
        return buffer.toString();
    }
}
原文地址:https://www.cnblogs.com/jiafuwei/p/6093895.html