资源简介
用jsoup实现爬取一个完整的网站,包含网站里的所有链接内容,会另存为html到本地,js和css文件也会保存到本地,可以直接在本地打开查看一个完整的网站。
eclipse项目,可以直接导入修改。
提供一个链接和保存爬取后的网页保存位置即可。
代码片段和文件信息
package com.crawl;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import com.crawl.util.FileUtils;
public class CrawlWebSite {
private final static String charSet = “utf-8“;
private final static String rootDir = “C:/crawlWebSite/“;
//private final static String rootUrl = “http://www.inmarsat.com/“;
private final static String rootUrl = “http://www.jhcomn.com/“;
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();
/**过滤掉不爬取的内容格式*/
public static final String filterExtArray [] = {“rar““zip““bmp““dib““gif““jfif““jpe““jpeg““jpg““png““tif““tiff““ico““pdf““doc““docx““xls““xlsx“};
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) {
System.out.println(“start....“);
//获取所有urls
getSubUrls(rootUrlrootUrl);
//test
//absRelativeUrlMap.put(“http://www.inmarsat.com/?p=3999“ “http://www.inmarsat.com/?p=3999“);
//保存文件
for(String absUrl : absRelativeUrlMap.keySet()){
String content;
try {
content = readContent(absUrl);
} catch (IOException e) {
System.err.println(“url=“+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(absRelativeUrlMap.get(absUrl) rootDir.concat(filePath));//脱机运行。。。
FileUtils.writeFile(content rootDir.concat(filePath)charSet);
}
System.out.println(“--------------------“);
//更新文件中的url
getAllFiles(new File(rootDir));
Document doc = null;
for(File file : allFiles){
try {
doc = Jsoup.parse(file “utf8“rootUrl);
dealCssJsFile(doc);
replaceUrl(doc);
} catch (Exception e) {
e.printStackTrace();
}
String newContent = doc.html();
FileUtils.writeFile(newContent file.getAbsolutePath()charSet);
}
System.out.println(“finished.“);
}
/**
* 获取指定url页面中的所有链接
* @param url
* @return
* @throws IOException
*/
public static void getSubUrls(String absUrlString relativeUrl) {
// TODO Auto-generated method stub
if(absRelativeUrlMap.get(absUrl)!=null || filter(absUrl)){
retu
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 360 2014-03-04 20:30 crawl-website\.classpath
文件 389 2014-03-04 20:01 crawl-website\.project
文件 629 2014-03-04 20:01 crawl-website\.settings\org.eclipse.jdt.core.prefs
文件 278273 2013-06-05 09:45 crawl-website\lib\jsoup-1.7.1.jar
文件 9347 2014-03-05 20:22 crawl-website\src\com\crawl\CrawlWebSite.java
文件 5574 2014-03-05 20:20 crawl-website\src\com\crawl\util\FileUtils.java
文件 1150 2014-03-05 13:36 crawl-website\src\com\crawl\util\StringUtil.java
目录 0 2014-03-05 13:36 crawl-website\src\com\crawl\util
目录 0 2014-03-05 20:35 crawl-website\src\com\crawl
目录 0 2014-03-04 20:02 crawl-website\src\com
目录 0 2014-03-04 20:01 crawl-website\.settings
目录 0 2014-03-04 20:30 crawl-website\lib
目录 0 2014-03-04 20:02 crawl-website\src
目录 0 2014-03-05 20:36 crawl-website
----------- --------- ---------- ----- ----
295722 14
- 上一篇:国外简单的后台模板html
- 下一篇:5个不同样式bootstrap导航菜单模板
相关资源
- Head First HTML CSS中文版
- HTML5+CSS3实现的图片过滤归类应用特效
- 开心网游戏简单页面
- jQuery+CSS3+HTML5催眠怀表摇摆动画特效
- 李刚疯狂系列图书精选疯狂Ajax讲义、
- zengarden 禅意花园 CSS HTML
-
疯狂HTML5 CSS 3 ja
vasc ript讲义 最完整 - 李炎恢XHTML项目源码8个
-
641798疯狂HTML5+CSS3+ja
vasc ript讲义第 - Head First HTML5 Programming中文版
-
李刚 疯狂HTML 5+CSS 3+ja
vasc ript讲义 - 精美网站模板div+css模板html模板,管理
- 仿王者荣耀官网.zip
- HTML+CSS+JS构建的电商网站页面源码
- HTML5+CSS仿Instagram应用图片滤镜效果
- 11个html5+css3全屏遮罩导航菜单
- html+css+js飞机大战
- 跨平台的移动Web开发实战HTML5CSS3
- 40个有创意的html+css网页源代码
-
HTML+CSS+ja
vasc ript中文使用手册 - html+css结课作业.rar
- Apple官网html+css实现.zip
- HTML5作业里面有超链接有CSS,适合学生
- HTML5+CSS3中文参考手册(3手册) chm版
- html+css学生期末考试专用
- HTML+CSS简单实现凡客商城静态网页
- 仿京东前端页面
- HTML5医院官方网站模板首页
-
HTML+CSS+ja
vasc ript国外婚纱摄影企业 - 企业官方网站模板
评论
共有 条评论