- 浏览: 1183477 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (350)
- Ajax研究 (2)
- javascript (22)
- struts (15)
- hibernate (12)
- spring (8)
- 我的生活 (28)
- jsp (2)
- 我的随笔 (84)
- 脑筋急转弯 (1)
- struts2 (2)
- ibatis (1)
- groovy (1)
- json (4)
- flex (20)
- Html Css (5)
- lucene (11)
- solr研究 (2)
- nutch (25)
- ExtJs (3)
- linux (6)
- 正则表达式 (2)
- xml (1)
- jetty (0)
- 多线程 (1)
- hadoop (40)
- mapreduce (5)
- webservice (2)
- 云计算 (8)
- 创业计划 (1)
- android (8)
- jvm内存研究 (1)
- 新闻 (2)
- JPA (1)
- 搜索技术研究 (2)
- perl (1)
- awk (1)
- hive (7)
- jvm (1)
最新评论
-
pandaball:
支持一下,心如大海
做有气质的男人 -
recall992:
山东分公司的风格[color=brown]岁的法国电视[/co ...
solr是如何存储索引的 -
zhangsasa:
-services "services-config ...
flex中endpoint的作用是什么? -
来利强:
非常感谢
java使用json所需要的几个包 -
zhanglian520:
有参考价值。
hadoop部署错误之一:java.lang.IllegalArgumentException: Wrong FS
最近在用Heritriex+Lucene做搜索引擎的项目,中间有一个功能要实现类似于百度和谷歌中"网页快照"的功能;
秀一下我自己的做法吧!
(1):页面中的处理很简单;
var url = "webSnap?url="+url+"&fresh="+Math.random();//我这个是提交给了servlet了。
window.open(url);
(2):servlet的处理方式:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
//得到页面传递过来的url
String urlAddress = JspUtils.getParameter(request, "url", "");
//把提交过来的网页地址直接定位到本地抓取磁盘中对应的页面
String conLocalAddress = getLocalAddress(urlAddress);
//获取本地抓取的页面中的编码方式
String charset = BaeeqUtil.getCharset(new File(conLocalAddress));
response.setContentType("text/html;charset="+charset+"");
//通过字符流的形式读文件
String localStr = FileRead(conLocalAddress);
PrintWriter out = response.getWriter();
//直接响应输出
out.write(localStr);
}
/**
* 读磁盘中某个文件
* @param fname
* @return String
*/
public String FileRead(String fname) {
String content = new String();
try {
FileReader fr = new FileReader(fname);
BufferedReader br = new BufferedReader(fr);
String str = new String();
while((str = br.readLine()) != null) {
content +=str;
}
br.close();
fr.close();
} catch(FileNotFoundException e) {
System.out.println("Connt find " + e);
} catch(IOException e) {
System.out.println("Error reading input file" + e);
}
return content;
}
/**
* 获得字符编码
* @param htmlFile
* @return
*/
public static String getCharset(File htmlFile){
String str = loadFileToString(htmlFile);
String regex = "charset=(\\w+\\d?)";
Pattern pattern = Pattern.compile(regex);//编译正则
Matcher matcher = pattern.matcher(str);//产生正则匹配对象。
if(matcher.find()){
String s = matcher.group(1);
System.out.println(s);
return s;
}
return "UTF8";
}
/***
* 得到本地磁盘上的mirror的地址
* @param printStr
* @return
*/
public String getLocalAddress(String printStr) {
return BaeeqUtil.switchUrl2Path(printStr, txtMirrorPath);
}
/**
* 测试方法
* @param args
* @return void
*/
public static void main(String[]args) {
String demo = "http://bbs.club.sina.com.cn/tableforum/App/index.php?tree=0&bbsid=272&subid=0";
System.out.println(BaeeqUtil.switchUrl2Path(demo, "e:\\"));
}
用这个方法做的网页快照。不知道大家还有其他的什么好的办法了没。欢迎指点……………………
发表评论
-
认真阅读hadoop源码
2012-11-01 16:00 1780从新复习hadoop,认真阅读hadoop源码,有兴趣的朋友可 ... -
铁道部售票网站怎么啦?
2012-01-10 10:25 1878乐淘CTO李勇:库存同步是难点 我的判断,除了 ... -
eclipse启动报错jvm terminated. Exit code=1
2011-10-11 08:55 1224转载链接: http://wxmfly.itey ... -
ireport中获取当前时间
2011-08-28 11:53 5169一。 iReport 中获取系统当前时间 1,选择Tex ... -
ireport引java bean database
2011-08-27 10:38 1745今天帮一同事调试程序,他们的报表工具用的是ireport4.0 ... -
谈谈爬虫的设计
2011-08-07 22:27 2317网络蜘蛛现在开源的已 ... -
为了养家,只能这样!
2011-07-03 16:22 16还是一直在玩数据,hadoop平台(自己一手搭建),使用爬虫n ... -
陆续整理数据方面的资料
2011-05-07 08:58 633差不多有一个多月没写东西了,最近比较忙!还是研究数据一些东西。 ... -
挣钱养家
2011-04-14 22:19 1163如果各位有私活的话忙不过来,可以通过QQ(282215036) ... -
使用perl连接mysql数据库
2011-04-05 22:21 1440用Perl DBI连接MySQL数据库 Perl中一个最酷的 ... -
图像数字识别技术
2011-04-01 17:32 5940最近在研究图像数字识别技术,对于一些简单没有干扰的图片,可以读 ... -
100个可供选择的搜索引擎
2011-03-02 13:11 1503本文根据 readwriteweb ... -
对于处理问题的一点想法
2011-02-23 08:26 1123昨天快下班的时候,遇到一个建立索引的问题,因为快下班了,我没有 ... -
温故而知新
2011-02-20 16:44 1188又回过头来复习以前的知识了?在家里实在无聊!把之前学习过的东西 ... -
加钱也得买票回家过年
2011-01-25 08:44 982昨天从黄牛党手上拿了一张高价票。加了100.哎!这年头在外面忙 ... -
Eclipse3.6 Helios SVN插件–Subversive
2011-01-12 11:42 3653刚在Google Code上发布了一个Open Project ... -
博客有时候来不及更新,希望大家见谅!
2011-01-10 17:42 1011刚到新公司,可能开始忙了,博客有时候来不及更新,希望大家见谅! ... -
新公司入职第一天
2011-01-10 11:47 1326今天是我去新公司入职的第一天。感觉一切都是新的,从头开始!加油 ... -
java中各种算法的实现
2010-12-30 13:01 1162选择排序算法的JAVA实现 viewplainprin ... -
java基础知识复习
2010-12-30 13:00 1018学习Java一 配置环境变量 学习Java二 开发第一 ...
相关推荐
"imgMode"这个文件名可能指的是与图像模式或处理方式相关,可能是在网页快照中用于调整或优化图片显示的设置。例如,它可能是一个配置文件,用于决定如何压缩或展示网页快照中的图像,或者是一个工具,允许用户选择...
在Java编程环境中,生成网页快照是一项常见的需求,主要用于数据抓取、网页存档或测试自动化等场景。这里我们关注的焦点是如何利用Java实现整张网页的快照功能。通过标题"java 实现整张网页快照"和描述,我们可以...
总的来说,这个项目提供了一个C#环境下的网页快照生成工具,能够有效地处理网页内容,尤其是涉及JavaScript的页面,并解决了截图过程中可能出现的白屏问题,对于开发者进行网页抓取、数据分析或者构建网页历史记录...
【网页快照工具软件MetaProducts Inquiry】是一款专为用户设计的高效、实用的网页保存与管理工具。它允许用户在浏览网页时,便捷地将重要信息保存至本地,以便在离线状态下也能回顾和查阅。这款软件对于研究、学习、...
在C#编程环境下,我们可以利用不同的技术来实现网页快照的功能,而无需实际打开浏览器。本篇文章将深入探讨两种实现方法。 1. **使用WebClient类与HTML Agility Pack** C#中的`System.Net.WebClient`类可以用来...
在C语言中实现网页快照的功能,涉及到网络编程、字符串处理和文件操作等多个知识点。 1. **网络编程**:首先,需要了解TCP/IP协议栈,以便于通过HTTP协议与Web服务器通信。C语言中可以使用libcurl库来处理HTTP请求...
通过理解WebBrowser组件的工作原理,结合位图处理,我们可以构建一个强大的网页快照工具,不仅能够捕获单一网页的快照,还能处理包含多框架的复杂网页。这个项目对于学习Delphi的网络编程和图形界面设计具有很高的...
总的来说,实现"C# 网页快照(WinForm)"涉及到的知识点包括:C#基础,HTTP请求,HTML解析(如HtmlAgilityPack),WinForms控件(如`WebBrowser`),图像处理(System.Drawing命名空间),以及可能的JavaScript执行和...
4. **图像处理**:为了保存网页快照为图像,我们需要掌握Bitmap对象的使用,包括创建、绘制、保存等操作。同时,可能还需要处理缩放、裁剪等图像处理问题,确保快照的质量。 5. **多线程处理**:如果要批量捕捉网页...
总的来说,C#和Asp.Net结合可以实现高效且灵活的网页快照生成解决方案。通过理解HTML解析、无头浏览器技术和图像处理,开发者可以利用这个开源项目作为起点,根据具体需求进行定制和扩展,为自己的Web应用程序添加更...
在Java编程中,生成网页快照是一项常见的任务,它主要用于数据抓取、搜索引擎优化(SEO)或者是为了离线浏览。这个任务通常涉及到网络编程、多线程和网页解析技术。以下将详细介绍如何根据给定的URL利用Java实现线程...
(一)PhantomJS是可使用JavaScript编写脚本的无头Web浏览器。它可以在Windows,macOS,Linux...(三)本例子中,提供了屏幕截图功能的使用,可以实现网页快照的功能,输入一个网址,可以获取到该网址的快照截图功能。
在IT行业中,网页快照是一种非常实用的技术,它允许用户查看网页在某个时间点的状态,即使该网页后来被修改或删除。PHP作为一种流行的服务器端脚本语言,常常被用来开发各种实用工具,其中之一就是网页快照程序。这...
总之,使用ASP.NET和C#实现网页快照功能需要理解WebBrowser控件的工作原理,掌握HTML页面的加载机制,并熟悉图像处理和文件I/O的相关知识。这个过程涉及到的技术点广泛,包括Web开发、图形处理、多线程编程以及文件...
网页照相机与网页快照器是一款独特且实用的工具,专为用户解决在互联网上遇到的网页内容无法复制或保存的问题。它能够将整个网页转化为高清图片,使得用户可以保存和分享网页内容,而不受网站防拷贝技术的限制。这款...
总结来说,制作网页快照的VC程序涉及到网页加载、渲染、截图和保存等多个技术点,需要对网络编程、浏览器引擎以及图形处理有一定的了解。通过这样的项目,开发者可以提升自己的跨领域技能,同时也能为实际工作中的...
总结来说,易语言网页快照源码提供了一个直观的学习平台,让开发者有机会深入理解网页快照的实现机制,以及易语言在处理网络请求和文件操作方面的功能。通过实践这个项目,不仅可以提升编程技能,也能为其他更复杂的...
2. **快照链接无效**:Nutch 在抓取网页时会创建网页快照,方便用户查看网页的历史状态。如果快照链接失效,可能是由于URL重定向、网页结构改变或存储问题导致。为了解决这个问题,可以: - 检查 Nutch 的抓取日志...
WebShot是一款功能强大的网页快照软件,它允许用户轻松地为网页创建静态图像或截图,并提供了丰富的自定义选项。在互联网上,网页快照是非常有用的工具,它可以帮助用户保存网页内容,防止因网页变动或链接失效而...