zoukankan      html  css  js  c++  java
  • 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();
        }
    }
  • 相关阅读:
    idea控制台乱码问题解决
    部署springboot项目到云服务器的两种方式(jar+war)
    case...when...then....(else...)....end的使用小案例
    多线程学习(二)
    多线程学习(一)
    Swagger学习笔记
    Docker进阶篇
    Docker入门基础篇
    Markdown语法学习(推荐使用Typora编辑器)
    git(六)——IDEA中使用git
  • 原文地址:https://www.cnblogs.com/jiafuwei/p/6093895.html
Copyright © 2011-2022 走看看