使用perl正则表达式解析HTML

时间:2014-02-20 13:18:35

标签: regex perl html-parser

我创建了一个Perl脚本,使用在线网站在用户输入哈希值后破解MD5哈希值。我部分成功,因为我能够从网站获得响应,但我需要解析HTML并以明文形式向用户显示哈希和相应的密码。以下是我现在得到的输出片段:

<strong>21232f297a57a5a743894a0e4a801fc3</strong>: admin</p>

使用正则表达式伙伴,我能够使用以下表达式 [a-z0-9] {32} 来单独匹配哈希部分。我需要以下格式的最终​​输出:

21232f297a57a5a743894a0e4a801fc3: admin

任何帮助将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:2)

我认为使用HTML::Parser来简单/可靠地解析HTML会更好。否则你会陷入使用regexp解析HTML的噩梦,你会发现它无法可靠地工作。

答案 1 :(得分:1)

有一些工具可以处理在CPAN上提供的页面提取和解析。其中一个是Web::Scraper。告诉它要获取哪个页面以及您想要的节点(使用xpath或CSS语法),它将为您获取它们。我不会举一个例子,因为我不知道你的网址。

有一个很好的blogpost about this on blogs.perl.org by stas使用了一个可能也有用的不同模块。

答案 2 :(得分:0)

这是:

$str = q{<strong>21232f297a57a5a743894a0e4a801fc3</strong>: admin</p>};
@arr = $str =~ m{<strong>(.+)</strong>(.+)</p>};
print(join("", @arr), "\n");