我正在用Perl寫一個爬蟲程序,它必須提取駐留在同一臺服務器上的網頁內容。我目前使用HTML::Extract模塊來完成這項工作,但是我發現模塊有點慢,所以我查看了它的源代碼,發現它沒有使用任何連接緩存來處理LWP::UserAgent。如何使用Perl高效提取HTML內容?
我最後的手段是抓住HTML::Extract
的源代碼,並修改它以使用緩存,但我真的想避免,如果我可以。有沒有人知道任何其他模塊可以更好地執行相同的工作?我基本上只需要抓取<body>
元素中的所有文本,並刪除HTML標籤。
感謝您的回答。我想知道,你知道你提到的哪個模塊更適合重複提取大量的HTML頁面嗎? – Alvin 2009-09-11 17:25:04
使用Web :: Scraper,至少可以將它傳遞給頁面的內容,而不是URL。這樣,您就可以在抓取之前執行自己的緩存。 – 2009-09-12 12:52:06
@Alvin:我不知道,因爲我不知道Web :: Scraper,HTML :: TreeBuilder或任何其他模塊如何針對pQuery執行操作。所有的利弊取決於具體的要求。順便說一句,要獲得在
與在pQuery中刪除的HTML標籤中的所有文本是:pQuery($ html_data) - > find('body') - > text; – draegtun 2009-09-12 21:48:29