2014-02-20 32 views
-1

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

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

使用正则表达式的好友,我能够使用下面的表达式[A-Z0-9] {32}到散列部分单独匹配。我需要在以下格式的最终​​输出:

21232f297a57a5a743894a0e4a801fc3: admin 

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

+1

'S/<.+?> //克;'... –

+0

看看http://stackoverflow.com/questions/1732348/regex-match-open-tags -except-XHTML-自足标签。 – simbabque

+1

我不明白的情况:如果它是你的网站,并且用户已经在使用表单元素,为什么你不能只使用POST/GET参数? – cypherabe

回答

2

我认为使用HTML::Parser来简单/可靠地解析HTML会更好。否则,你将陷入用正则表达式解析HTML的噩梦,并且你会发现它不能可靠地工作。

+0

1.找到一个* regex HTML *问题。 2.发表评论回答“使用解析器”。 3. ???? 4.利润! ,P – Qtax

+2

我想,认为实际上指向OP到一个特定的Perl的HTML解析模块比 –

+1

我喜欢他们指着[解析HTML的问题(http://stackoverflow.com/questions/1732348多一点/ regex-match-open-tags-except-xhtml-self-contained-tags)... :) – simbabque

1

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

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

0

这就是:

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