2014-02-20 34 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");