目标:高清的图片!!!
导包
导入jsoup.jar包
直接上代码了啊
package pctest;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class TestPc {
public static void main(String[] args) throws IOException {
// 调用Jsoup包中的connect(url)方法,参数url是地址,返回一个连接Connection
Connection connection = Jsoup.connect("https://pvp.qq.com/web201605/herolist.shtml");
// 获取的是一个Document对象
Document document = connection.get();
// 获取Document对象中的selectFirst(String cssQuery)方法,查询匹配的第一个元素,该元素作为起始上下文。
//这里获取的是ul标签
Element elementUl = document.selectFirst("[class=herolist clearfix]");
//这里获取的是ul标签下的li标签,返回的是Elements
//Elements继承了ArrayList
Elements elmentLi = elementUl.select("li");
for (Element element : elmentLi) {
Element elementA = element.selectFirst("a");
// attr(String key)方法获得元素的数据,与键值对差不多,返回的是值
// 例:href="herodetail/531.shtml"
//attr("href")返回的是 herodetail/531.shtml
String hrefURL = elementA.attr("href");
// text()获得文本值----获取a标签的文本
String innerText = elementA.text();
String path = new String(("https://pvp.qq.com/web201605/" + hrefURL));
Connection connection2 = Jsoup.connect(path);
Document document2 = connection2.get();
Element element2 = document2.selectFirst("[class=zk-con1 zk-con]");
// 获取背景图片的地址
String backIMG = element2.attr("style");
String string = backIMG.substring(backIMG.indexOf("'") + 1, backIMG.lastIndexOf("'"));
//====================================================
//下面的代码就是利用io将图片写入本地
URL url = new URL("https:" + string);
InputStream in = url.openStream();
byte[] bytes = new byte[1024];
int count = 0;
FileOutputStream out = new FileOutputStream("H:\\test\\" + innerText + ".jpg");
while ((count = in.read(bytes)) != -1) {
out.write(bytes, 0, count);
out.flush();
}
in.close();
out.close();
}
}
}