joup完美抓取非登录网页并引用其样式文件

来源:互联网 发布:淘宝店怎么提升信誉 编辑:程序博客网 时间:2024/06/06 07:13

上一篇文章在处理抓取网页中链接时做的不是很好,当时没有很好理解jsoup的功能,在仔细阅读后发现,jsoup的功能真是强大的让人叹服。下面这段代码可以抓取任意非登录页面,并直接引用其css\js等样式文件的绝对路径。



package testRedBag;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;


public class HttpClientHtml {
public static void main(String[] args) throws IOException {
String url = "http://www.baidu.com";
Document doc = Jsoup.connect(url).get();
Elements imgs=doc.getElementsByTag("img");//获取所有<img>标签
Elements a=doc.getElementsByTag("a");//获取所有<a>标签
Elements link=doc.getElementsByTag("link");//获取所有<link>标签
Elements script=doc.getElementsByTag("script");//获取所有<script>标签
//将所有<a>标签里的有效相对路径转换成有效绝对路径
for(int i=0;i<a.size();i++){
String href=a.get(i).attr("abs:href");
if(href!=""&&!href.contains("javascript:void(0)")&&!href.contains("#")){
Element str=a.get(i).attr("href",href);
}
}
//将所有<img>标签里的相对路径转换成绝对路径
for(int i=0;i<imgs.size();i++){
String src=imgs.get(i).attr("abs:src");
Element str=imgs.get(i).attr("src",src);
}
//获取指定的html内容
// Elements div=doc.getElementsByClass("1-content");//获取指定div内容
String html=doc.html();
System.out.println(html);

//将所有<link>标签里的相对路径转换成绝对路径
for(int i=0;i<link.size();i++){
String href=link.get(i).attr("abs:href");
Element str=link.get(i).attr("href",href);
}
//将所有<script>标签里的相对路径转换成绝对路径
for(int i=0;i<script.size();i++){
String src=script.get(i).attr("abs:src");
if(src!=""){
Element str=script.get(i).attr("src",src);
}
}
// System.out.println(link);
// System.out.println(script);
}
}







0 0
原创粉丝点击