java漫画下载_Java IO流 根据 输入url地址 爬虫下载漫画图片 保存到本地硬盘

package com.yaimer.test;

import java.io.*;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

/**

* @program: SpringBootMyBatisPuls

* @description: 爬取地址

* @author: Guistar_yaimer

* @create: 2020-07-22 16:02

**/

public class dow {

private static String s;

private static Integer pageNum=0;

private static String urlll = "";

public static String getHtml(String urlString) {

try {

StringBuffer html = new StringBuffer();

URL url = new URL(urlString);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

InputStreamReader isr = new InputStreamReader(conn.getInputStream());

BufferedReader br = new BufferedReader(isr);

String temp;

int a=0;

while ((temp = br.readLine()) != null) {

a=a+1;

//System.out.println(a);

html.append(temp).append("\n");

if (a==42){

//System.out.println("============第四十二=============="+temp);

s="";

s=temp;

}

}

br.close();

isr.close();

return html.toString();

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

public static void main(String[] args) {

//路径

String[] str={"82964","83282","83612","83880","92008","92993","93759","96957"};

//每一话页数

int[] pageSize ={45,44,45,45,46,44,46,46};

//保存地址

urlll="06_38-45";

for (int i = 0; i

d(str[i],pageSize[i]);

}

System.out.println("全部下载完毕--------");

}

public static void d(String string,int pageSize){

System.out.println("下载开始"+string+"--"+pageSize);

for (int i = 1; i < pageSize+1; i++) {

String src="http://www.hhimm.com/cool"+string+"/"+i+".html?s=5&d=0";

s="";

getHtml(src);

String ss =s.trim();

String sss =ss.substring(ss.indexOf("name="),ss.indexOf("onerror"));

String ssss = sss.substring(6,sss.length()-2);

pageNum+=1;

doww(pageNum,getji(ssss));

//System.out.println(src+"----"+pageNum+"页");

}

System.out.println(string+"下载完毕--over");

}

public static String getji(String s){

String x = s.substring(s.length()-1);

String w="abcdefghijklmnopqrstuvwxyz";

int xi=w.indexOf(x)+1;

String sk = s.substring(s.length()-xi-12,s.length()-xi-1);

s=s.substring(0,s.length()-xi-12);

String k=sk.substring(0,sk.length()-1);

String f=sk.substring(sk.length()-1);

for(int i=0;i

if(s.contains(k.substring(i,i+1))){

s=s.replace(k.substring(i,i+1),String.valueOf(i));

}

}

String[] ss = s.split(f);

s="";

for(int i=0;i

s+=(char) Integer.parseInt(ss[i]);

//s+=String.fromCharCode(ss[i]);

}

return "http://20.94201314.net/dm05/"+s;

}

public static void doww(int num,String url){

String path = "D:/image/"+urlll+"/";

File dir = new File(path);

path += num + ".jpg";

download(url, path);

}

public static void download(String strUrl, String path) {

URL url = null;

try {

url = new URL(strUrl);

} catch (MalformedURLException e2) {

e2.printStackTrace();

return;

}

InputStream is = null;

try {

is = url.openStream();

} catch (IOException e1) {

e1.printStackTrace();

return;

}

OutputStream os = null;

try {

os = new FileOutputStream(path);

int bytesRead = 0;

byte[] buffer = new byte[8192];

while ((bytesRead = is.read(buffer, 0, 8192)) != -1) {/*buffer数组存放读取的字节,如果因为流位于文件末尾而没有可用的字节,则返回值-1,以整数形式返回实际读取的字节数*/

os.write(buffer, 0, bytesRead);

}

} catch (FileNotFoundException e) {

e.printStackTrace();

return;

} catch (IOException e) {

e.printStackTrace();

return;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值