Jsoup抓取整个网站
使用jsoup,抓取整个网站,保存在本地。包括网站的“css、js、图片、页面”,都会保存在本地。并且保存的路径痛网站上的路径。经过测试,一般的基础网站都可以抓取。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 36 2017-12-13 10:09 haha.gitCOMMIT_EDITMSG
文件 321 2017-12-05 10:07 haha.gitconfig
文件 73 2017-12-05 10:07 haha.gitdescription
文件 89 2017-12-13 10:16 haha.gitFETCH_HEAD
文件 23 2017-12-05 10:07 haha.gitHEAD
文件 478 2017-12-05 10:07 haha.githooksapplypatch-msg.sample
文件 896 2017-12-05 10:07 haha.githookscommit-msg.sample
文件 189 2017-12-05 10:07 haha.githookspost-update.sample
文件 424 2017-12-05 10:07 haha.githookspre-applypatch.sample
文件 1642 2017-12-05 10:07 haha.githookspre-commit.sample
文件 1348 2017-12-05 10:07 haha.githookspre-push.sample
文件 4951 2017-12-05 10:07 haha.githookspre-rebase.sample
文件 1239 2017-12-05 10:07 haha.githooksprepare-commit-msg.sample
文件 3610 2017-12-05 10:07 haha.githooksupdate.sample
文件 1888 2017-12-26 10:25 haha.gitindex
文件 240 2017-12-05 10:07 haha.gitinfoexclude
文件 1013 2017-12-13 10:09 haha.gitlogsHEAD
文件 1013 2017-12-13 10:09 haha.gitlogs
efsheadsmaster
文件 176 2017-12-05 10:07 haha.gitlogs
efs
emotesoriginHEAD
文件 784 2017-12-13 10:09 haha.gitlogs
efs
emotesoriginmaster
文件 119 2017-12-05 10:07 haha.gitobjects 056a658c14ce9b6665b9d92864145109fdbe623
文件 2149 2017-12-20 09:44 haha.gitobjects 086e5780143a92e4910d9d3e567f7013035ec74
文件 65 2017-12-13 10:09 haha.gitobjects 193c2673203020e3726e397a6870107f9e38aa9
文件 521 2017-12-05 10:07 haha.gitobjects 4fa92d24d70315d66797bf126b61ba2731b0411
文件 266 2017-12-13 09:26 haha.gitobjects 6d8b0fef21e1f6a7ab4210217b0428f33aecc84
文件 987 2017-12-13 09:26 haha.gitobjects 856bbc012e6df8b5c49c9642f0b02e3e75c358f
文件 10484 2017-12-13 09:26 haha.gitobjects d545b98739ec69d5b04fb244df18bd1ec762f62
文件 182 2017-12-13 09:27 haha.gitobjects e14a2a0223fa5ec422ade6d9a7804769dc06939
文件 1478 2017-12-13 09:26 haha.gitobjects14451bd2293d2f0774b40d48de0e666f69a37621
文件 15794 2017-12-13 09:26 haha.gitobjects1448095eb6c3cc24a04d8390c7c68856dcd5bdf1
............此处省略402个文件信息
package cn.yuping.haha;
import cn.yuping.haha.util.FileUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.*;
@WebServlet(name = “crawlWebServlet“ urlPatterns = “/crawlWeb“)
public class CrawlWebSite extends HttpServlet {
private final static String charSet = “utf-8“;
private static String rootDir;
private static String rootUrl; //“http://www.17sucai.com/preview/216556/2016-02-25/%E6%A9%99%E8%89%B2%E5%95%86%E5%9C%BAwap/“
private final static int timeOut = 30000;
/**网站上相对地址与绝对地址的映射*/
private static Map absRelativeUrlMap = new HashMap();
/**网站上的url与最终本地使用的url映射*/
private static Map urlmapMap = new HashMap();
/**网站上的cssjs*/
private static Map cssjsmapMap = new HashMap();
private static List allFiles = new ArrayList();
private static Set imgList = new HashSet();
/**过滤掉不爬取的内容格式*/
// public static final String filterExtArray [] = {“rar““zip““bmp““dib““gif““jfif““jpe““jpeg““jpg““png““tif““tiff““ico““pdf““doc““docx““xls““xlsx“};
public static final String filterExtArray [] = {“rar““zip““bmp““dib““jfif““jpe““jpeg““tif““tiff““ico““pdf““doc““docx““xls““xlsx“};
@Override
public void doPost(HttpServletRequest request HttpServletResponse response)
throws ServletException IOException {
System.out.println(“start....“);
request.setCharacterEncoding(“UTF-8“);
rootUrl = request.getParameter(“rootUrl“);
rootDir = request.getParameter(“rootDir“);
HttpSession session = request.getSession();
if(rootUrl != null && !rootUrl.equals(““) && rootDir != null && !rootDir.equals(““)){
if(rootUrl.contains(“.html“) || rootUrl.contains(“.jsp“) || rootUrl.contains(“.htm“)){
session.setAttribute(“msg““网站抓取失败网址输入有误,不能有‘.html、.jsp’等结尾“);
response.sendRedirect(“index.jsp“);
return;
}
if(!rootUrl.endsWith(“/“)){
rootUrl = rootUrl.concat(“/“);
}
//获取所有urls
getSubUrls(rootUrlrootUrl);
//保存文件
for(String absUrl : absRelativeUrlMap.keySet()){
String content;
try {
content = readContent(absUrl);
} catch (IOException e) {
System.err.println(“url3=“+absUrl+“ 页面无效!“);
continue;
}
if(!absUrl.startsWith(rootUrl)){
continue;
}
String filePath = absUrl.substring(rootUrl.length());
filePath = FileUtils.parseFilePath(filePath);
//urlmapMap.put(absRelativeUrlMap.get(absUrl) filePath);//脱机运行和在服务器运行有所不同。。。
urlmapMap.put(absRela
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 36 2017-12-13 10:09 haha.gitCOMMIT_EDITMSG
文件 321 2017-12-05 10:07 haha.gitconfig
文件 73 2017-12-05 10:07 haha.gitdesc
文件 89 2017-12-13 10:16 haha.gitFETCH_HEAD
文件 23 2017-12-05 10:07 haha.gitHEAD
文件 478 2017-12-05 10:07 haha.githooksapplypatch-msg.sample
文件 896 2017-12-05 10:07 haha.githookscommit-msg.sample
文件 189 2017-12-05 10:07 haha.githookspost-update.sample
文件 424 2017-12-05 10:07 haha.githookspre-applypatch.sample
文件 1642 2017-12-05 10:07 haha.githookspre-commit.sample
文件 1348 2017-12-05 10:07 haha.githookspre-push.sample
文件 4951 2017-12-05 10:07 haha.githookspre-reba
文件 1239 2017-12-05 10:07 haha.githooksprepare-commit-msg.sample
文件 3610 2017-12-05 10:07 haha.githooksupdate.sample
文件 1888 2017-12-26 10:25 haha.gitindex
文件 240 2017-12-05 10:07 haha.gitinfoexclude
文件 1013 2017-12-13 10:09 haha.gitlogsHEAD
文件 1013 2017-12-13 10:09 haha.gitlogs
efsheadsmaster
文件 176 2017-12-05 10:07 haha.gitlogs
efs
emotesoriginHEAD
文件 784 2017-12-13 10:09 haha.gitlogs
efs
emotesoriginmaster
文件 119 2017-12-05 10:07 haha.gitob
文件 2149 2017-12-20 09:44 haha.gitob
文件 65 2017-12-13 10:09 haha.gitob
文件 521 2017-12-05 10:07 haha.gitob
文件 266 2017-12-13 09:26 haha.gitob
文件 987 2017-12-13 09:26 haha.gitob
文件 10484 2017-12-13 09:26 haha.gitob
文件 182 2017-12-13 09:27 haha.gitob
文件 1478 2017-12-13 09:26 haha.gitob
文件 15794 2017-12-13 09:26 haha.gitob
............此处省略402个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)