爬取图片 jsoup

啥都不说,直接上代码,粘上来格式有点乱,你们用的时候,直接复制就行了,但是图片规则需要自己去搞的

 

package grab;


import java.awt.AWTException;
import java.awt.Robot;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
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 Service {
    
    public static void main(String[] args)  {

            long startTime = System.currentTimeMillis();    //获取开始时间

            //从第三页开始抓取 到87 页
            for (int i = 3; i <= 87; i++) {
                System.out.println("执行第" + (i-2) +"次开始");
                 try {
                    getDoc("http://www.youzi4.cc/mm/meinv/index_"+ i +".html");
                    System.out.println("执行第" + (i-2) +"次结束");
                 } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                /*java中延时去执行,非线程 , 如果遇见拦截的可以适当延迟执行文件
                Robot r;
                try {
                    r = new   Robot();
                     System.out.println( "延时前:"+new Date().toString()  );   
                     r.delay(   5000   ); //延时5秒执行
                    
                     System.out.println(   "执行第"+i+"次" + new Date().toString()   );    
                } catch (AWTException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }      */
            }
            
            
            long endTime = System.currentTimeMillis();
            System.out.println("开始时间为" + startTime + "结束时间为" + endTime + "程序耗时为" + (endTime - startTime)/60000 + "分钟" );
        
        
    }
    

     public static void getDoc(String urll) throws IOException{

        File f = new File("E://imgs");
             if(!f.exists()){
                 f.mkdirs();
             }
             //以网易为例子
          //Document doc = Jsoup.connect("http://www.163.com/").get();
          Document doc = Jsoup.connect(urll).get();
          //获取后缀为png和jpg的图片的元素集合
          Elements pngs = doc.select("img[src~=(?i)\\.(png|jpe?g)]");
          
        for (Element e : pngs) {  
            
            String name = e.attr("alt");
            String src=e.attr("src");//获取img中的src路径
            //获取后缀名
            String imageName = src.substring(name.lastIndexOf("/") + 1,src.length());
           
            // String str = "d62f3df6260c4d3d845b546b6aded87b.png?imageView&thumbnail=453y225&quality=85";
            //String str = "";
             String pattern = "([?][^?]+)$";//截取?号 后的数据,并将其替换
             String  str1 = imageName.replaceAll(pattern,"");
            
            //连接url
            URL url = new URL(src);
          
            URLConnection uri=url.openConnection();
            //获取数据流
            InputStream is=uri.getInputStream();
            
            //写入数据流 如果文件名异常,会抛出异常的
            OutputStream os = new FileOutputStream(new File("E://imgs", name + ".png")); 
            
            byte[] buf = new byte[5*1024*1024]; 
            int l=0;
            while ((l=is.read(buf)) != -1) {
                os.write(buf, 0, l);
            }
            
        }
    
   }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的内容,安装VMware VCSA的步骤如下: 1. 首先,从VMware官网下载VCSA安装包,可以选择适合的版本。 2. 准备一台ESXi主机,在其上部署两台Windows Server 2019服务器,一台用作Active Directory(AD),一台用于安装VCSA。确保VC的域名可以在AD上解析出来。 3. 运行VCSA安装包,点击安装。输入ESXi主机的地址、端口号、用户名和密码。 4. 输入VCSA底层密钥(Injoin@2020)和FQDN(需要在AD的DNS中添加A记录)。完成安装。 5. 解决ESXi本地无法登录的问题,禁用锁定模式。 6. 如果在安装VIM时遇到错误,如错误1722,可以尝试删除Microsoft Virtual C++并重新安装。 7. 如果在安装VCenter6时遇到1603错误,可以尝试修改兼容性或上传本地虚拟机。 根据引用\[3\]的内容,VCSA是一台预装了vCenter的应用服务器,操作系统为SUSE Linux。在6.0版本开始,需要在Windows平台上执行安装程序来完成VCSA部署。 综上所述,您可以按照以上步骤来安装VMware VCSA。 #### 引用[.reference_title] - *1* *3* [VMware vCenter Server Appliance(VCSA)6.0安装过程](https://blog.csdn.net/zly3500/article/details/125748500)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [VMware——VCSA部署](https://blog.csdn.net/u012391293/article/details/116982787)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值