加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl从网页分析出英文单词

发布时间:2020-12-15 20:53:20 所属栏目:大数据 来源:网络整理
导读:?1 #!/usr/bin/perl ?2 use Inline CPP; ?3 package ?MyParser; ?4 use base ? " HTML::Parser " ; ?5 ?6 my ? $src = ' src.htm ' ; ?7 my ? $allow = 0 ; ?8 my ? %hashwords ; ?9 my ? @arraywords ; 10 11 sub ? trim 12 { 13 ???????? my ? $str ?= $_

?1 #!/usr/bin/perl
?2 use Inline CPP;
?3 package?MyParser;
?4 use base?"HTML::Parser";
?5
?6 my?$src='src.htm';
?7 my?$allow=0;
?8 my?%hashwords;
?9 my?@arraywords;
10
11 sub?trim
12 {
13 ????????my?$str?= $_[0];
14 ????????$str?=~ s/^/s+//o;
15 ????????$str?=~ s//s+$//o;
16 ????????return?$str;
17 }
18
19 sub?start
20 {
21 ????????my?($self,$tagname,$attr,$attrseq,$text) = @_;
22 ????????if($tagname?eq?'script'?or?$tagname?eq?'a')
23 ????????{
24 ????????????????$allow=0;
25 ????????}
26 ????????else
27 ????????{
28 ????????????????$allow=1;
29 ????????}
30 }
31
32 sub?text
33 {
34 ????????my?($self,$text) =@_;
35 ????????$text=trim($text);
36 ????????if($allow?and?$text)
37 ????????{
38 ????????????????my?@words=split(/[/s,/./)/(/':;/"]+/o,$text);
39 ????????????????foreach?my?$word(@words)
40 ????????????????{
41 ????????????????????????$word=lc($word);
42 ????????????????????????if($word=~m/^[a-z]+$/o)
43 ????????????????????????{
44 ????????????????????????????????if(not?exists?%hashwords->{$word})
45 ????????????????????????????????{
46 ????????????????????????????????????????%hashwords->{$word}=0;
47 ????????????????????????????????????????push(@arraywords,$word);
48 ????????????????????????????????}
49 ????????????????????????}
50 ????????????????}
51 ????????}
52 }
53
54 %hashwords=();
55 my?$p?= MyParser->new;
56 $p->parse_file($src);
57 @arraywords=sort(@arraywords);
58 foreach?my?$word(@arraywords)
59 {
60 ????????print?"$word/n";
61 }
62

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读