计算页面字数,求助!!!

udbjatpe1987 2009-11-04 06:34:16
做一个页面,可以输入一个网页的地址,然后当点击一个button的时候,会自动计
算该页面的word count(字数)。同时,这个页面所链接到的其他页面,也需要计
算他的字数。
...全文
778 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen_xiangguo 2009-11-06
  • 打赏
  • 举报
回复
这是截图
chen_xiangguo 2009-11-06
  • 打赏
  • 举报
回复
楼主的想法不错,很有创意。
要明白,因为js不可以跨域访问,所以不利用服务器技术是不可以(使用iframe只可以)
以下是我的实现效果:

我的思想是:由于js不能跨域访问,我用服务端语言访问,然后传递到页面。
我使用的服务端语言是java,即jsp,运用的ajax框架是dwr,当点击按钮时,java 代码访问相应的url,得到html,然后返回页面。
index.html:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获得页面html</title>
<script src="js/jquery-1.3.2.min.js"></script>
<script type='text/javascript' src='/zf/dwr/interface/HtmlAction.js'></script>
<script type='text/javascript' src='/zf/dwr/engine.js'></script>
<script type='text/javascript' src='/zf/dwr/util.js'></script>
</head>
<body>
<center>
输入网址(网址必须以http开头):
<input type="text" id="webSite">
<input type="button" id="getHtml" value="获取html">
</center>
<div id="msg">
</div>
<br>
<center>
<textarea style="width:100%; height:600px;"></textarea>
</center>
</body>
<script language="javascript">
$(function()
{  
$('#getHtml').click(sub);
});
function sub()
{
if($('#webSite').val()=="")
return;
HtmlAction.getHtmlByUrl($('#webSite').val(),doShow);
}
function doShow(result)
{
$('textarea').val(result);

}
</script>
</html>

服务器方法(简单的java网络代码):

public String getHtmlByUrl(String url) {
URL net = null;
try {
net = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
return null;
}
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(net.openStream()));
} catch (IOException e) {
e.printStackTrace();
return null;
}
StringBuffer sb = new StringBuffer();
String inputLine = null;
try {
while ((inputLine = reader.readLine()) != null) {
sb.append(inputLine + "\n");
}
} catch (IOException e) {
e.printStackTrace();
return null;
}
return sb.toString();
}

另外,你还说取出它的所有链接,然后求它们的页面字数,原理这是一样的。但是求链接有问题。
我可以取出所有的href标签(使用正则表达式,网上一大堆,正则是:/<A[^>]*?HREF\s*=\s*["']?([^'"" >]+?)(?=[ '""]?>)/gi),然后进行一点字符串处理取得链接,这个也可以实现,但是复杂的是:对取出来的路径我要进行相对路径和绝对路径的判断,相对路径我要加上地址。。。。感觉太复杂,就没写那个。
你要是需要那个代码,我可以写,但是原理就是这样。
要写的话qq我(qq:1228902349)
wifewifewife 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuxiang2006 的回复:]
你说的更像是一个爬虫的功能,如果这一功能想要用JS实现的基本不太可能,最后前台调用爬虫程序,由爬虫程序去完成搜索与计算功能。
[/Quote]
是的,非常象爬虫。。
cat2781 2009-11-05
  • 打赏
  • 举报
回复
二楼有理
但不知道如何找出所有元素
gkw521 2009-11-05
  • 打赏
  • 举报
回复
帮顶,学习
浴火_凤凰 2009-11-05
  • 打赏
  • 举报
回复
实现不了!
首先如果一个页面链接了一个不同域的页面
第二个页面的内容估计JS就获取不到!
如果能实现,那么搜索引擎就很容易了
内容都能获取到那么查找一个字符还不容易吗?
xiaofan_sap 2009-11-05
  • 打赏
  • 举报
回复
统计本页面字数的例子:
<html>
<head>
<title></title>
</head>
<body>
<table>
<tr><td>123456789</td></tr>
<tr><td>123456789</td></tr>
<tr><td>123456789</td></tr>
<tr><td>123456789</td></tr>
<tr><td>123456789</td></tr>
<tr><td>123456789</td></tr>
</table>
</div>


<script language="javascript" type="text/javascript">

function cleanWhitespace(element)
{
element=element||document;
var cur=element.firstChild;
while(cur!=null)
{
if(cur.nodeType==3&&!/\S/.test(cur.nodeValue))
{
element.removeChild(cur);

}else if(cur.nodeType==1)
{
cleanWhitespace(cur);
}
cur=cur.nextSibling;
}
}
alert("ok");
cleanWhitespace();

var num=0;
var testdiv = document.body;
(function(node) {
for (var i=0; i <node.childNodes.length; i++) {
var c = node.childNodes[i];
if (c.nodeType == 3)
{
num+=parseInt(c.nodeValue.length);
alert(num);
}
else
arguments.callee(c);
}
})( testdiv );
</script>

</body>
</html>
xiaofan_sap 2009-11-05
  • 打赏
  • 举报
回复

<script language="javascript">
var num=0;
var testdiv = document.body;
(function(node) {
for (var i=0; i <node.childNodes.length; i++) {
var c = node.childNodes[i];
if (c.nodeType == 3)
{
num+=parseInt(c.nodeValue.length);
alert(num);
}
else
arguments.callee(c);
}
})( testdiv );
</script>
Dogfish 2009-11-05
  • 打赏
  • 举报
回复
找找google。 "javascript spider"
xiaotang_hb 2009-11-04
  • 打赏
  • 举报
回复
学习··顶下咯··
chen_xiangguo 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fandelei1982 的回复:]
用ajax,对输入的url进行提交,获取返回的文本,就能获取字数,然后对文本进行分析,取出其中的连接的url,然后对其连接进行同样的操作,获取其连接的页面的文本及其字数.
[/Quote]
我使用的jquery的ajax,可是网址是我自己的网址还行,一换别的网址,就显示错误(”没有权限“),这是怎么回事?
friendly_ 2009-11-04
  • 打赏
  • 举报
回复
用ajax,对输入的url进行提交,获取返回的文本,就能获取字数,然后对文本进行分析,取出其中的连接的url,然后对其连接进行同样的操作,获取其连接的页面的文本及其字数.
my_nature_2 2009-11-04
  • 打赏
  • 举报
回复
二楼有理
但不知道如何找出所有元素
wuxiang2006 2009-11-04
  • 打赏
  • 举报
回复
你说的更像是一个爬虫的功能,如果这一功能想要用JS实现的基本不太可能,最后前台调用爬虫程序,由爬虫程序去完成搜索与计算功能。
udbjatpe1987 2009-11-04
  • 打赏
  • 举报
回复
有没有哪位高手帮我写下,,求助啊。。
xiaofan_sap 2009-11-04
  • 打赏
  • 举报
回复
提供个思路 :html中 节点类型经常用的有三种
元素 nodetype=1 匹配《li》《a》 body等节点
文本 nodetype=3
文档 就是hmtl 你可以便利一个页面,找出节点类型为3的节点 ,获得他的值,有length得到其长度。
一、Excel高级技巧 3 1、 编辑技巧 3 2、单元格内容的合并 4 3、条件显示 4 4、自定义格式 5 5、绘制函数图像 6 6、自定义函数 6 7、矩阵计算 7 8、自动切换输入法 7 9、批量删除空行 7 10、如何避免错误信息 8 11、宏的应用 9 12、图表的应用技巧 9 二、EXCEL技巧52例 11 三、Excel常见问题 17 四、Excel工作表保护大法 19 五、Excel编辑使用六技巧 20 1.编辑技巧 20 2、单元格内容的合并 21 3、条件显示 22 4、自定义格式 22 5、批量删除空行 23 6、如何避免错误信息 23 六、ExcelHome精华版整理 24 1、从身份证号码中提取性别 24 2、xls--->exe可以么? 25 3、列的跳跃求和 25 4、能否象打支票软件那样输入一串数字它自动给拆分成单个数字? 25 5、如何编这个公式 26 6、将文件保存为以某一单元格中的值为文件名的宏怎么写 26 7、IE中实现链接EXCEL表 26 8、EXCEL中求两陈列的对应元素乘积之和 27 9、求助日期转换星期的问题 27 10、研究彩票,从统计入手 27 11、如何自动设置页尾线条? 28 12、求工齡 28 13、如何用excel求解联立方程: 29 14、行高和列宽单位是什么? 如何换算到毫米? 29 15、如果想用宏写一个完全退出EXCEL的函数是什么? 29 16、请问如何编写加载宏? 29 17、EXCEL2000中视面管理器如何具体运用呀? 30 18、用VBA在自定义菜单中如何仿EXCEL的菜单做白色横线? 30 19、如何去掉单元格中间两个以上的空格? 30 20、打印表头? 31 七、Excel鲜为人知的35招秘技 31 1、建立分类下拉列表填充项 31 2、建立“常用文档”新菜单 32 3、让不同类型数据用不同颜色显示 32 4、制作“专业符号”工具栏 32 5、用“视面管理器”保存多个打印页面 33 6、让数据按需排序 33 7、把数据彻底隐藏起来 33 8、让中、英文输入法智能化地出现 34 9、让“自动更正”输入统一的文本 34 10、在Excel中自定义函数 34 11、表头下面衬张图片 34 12、用连字符“&”来合并文本 35 13、快速打印学生成绩条 35 14、Excel帮你选函数 35 15、同时查看不同工作表中多个单元格内的数据 36 16、为单元格快速画边框 36 17、控制特定单元格输入文本的长度 36 18、成组填充多张表格的固定单元格 36 19、改变文本的大小写 37 20、提取字符串中的特定字符 37 21、把基数词转换成序数词 37 22、用特殊符号补齐位数 38 23、创建文本直方图 38 24、计算单元格中的总字数 38 25、关于欧元的转换 39 26、给表格做个超级搜索引擎 39 27、Excel工作表大纲的建立 39 28、插入“图示” 40 29、熟悉Excel的“从文本到语音” 40 30、Excel中“摄影”功能的妙用 40 31、在多张表格间实现公用数据的链接和引用 40 32、“驯服”Excel 2002的剪贴板窗口 41 33、利用公式审核工具查看数据出处 41 34、巧用Excel 2002的“智能鼠标” 41 35、Excel 2002“监视”窗口的应用 42 八、BIOS的基本概念 42

87,916

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧