我正在研究需要刮取用戶提交的網站一部分的應用程序。我想從網站收集有用和可讀的內容,絕對不是整個網站。如果我查看也是這樣的應用程序(例如thinkery),我注意到它們以某種方式設法創建了一個颳去網站的方法,嘗試猜測有用的內容是什麼,以可讀的格式顯示它,並且它們執行的速度非常快。從網站中提取有用/可讀的內容
我一直在玩cURL,我越來越接近我想要的結果,但我有一些問題,並想知道如果有人有一些更多的見解。
$ch = curl_init('http://www.example.org');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// $content contains the whole website
$content = curl_exec($ch);
curl_close($ch);
通過非常簡單的代碼上面,我可以湊了整個網站,用的preg_match()我可以嘗試找到DIV與包含字符串「內容」,「摘要」等等類別,ID或屬性的。
如果preg_match()有結果,我可以相當猜測我找到了相關內容並將其另存爲保存頁面的摘要。我遇到的問題是cURL將整個頁面保存在內存中,因此這可能佔用大量時間和資源。我認爲在這麼大的結果上做preg_match()也會花費很多時間。
有沒有更好的方法來實現這一目標?
'preg_match'從包含整個HTML頁面的字符串中查找內容?你在開玩笑吧?如果你很擔心內存,'allow_url_fopen'並直接使用'DomDocument :: loadHTMLFile'加載頁面 –
這可能是爲什麼我在尋找幫助,我知道它會打破標籤沒有正確關閉,它是其中一個較慢的功能。 //謝謝,會嘗試一下。 – erik404