2011-01-06 41 views
0

我想構建一個QA程序來抓取站點的所有頁面(指定域名下的所有文件),並且它會返回站點上所有未在新窗口中打開的外部鏈接(不包括在href中有target =「_ blank」屬性)。是否有可能在PHP中構建這種類型的程序?

我可以製作一個php或javascript在新窗口中打開外部鏈接或報告所有在單個頁面的新窗口中打開的問題鏈接(該腳本所在的頁面相同),但我想要的是讓質量檢查工具去搜索網站的所有頁面,並向我報告發現的內容。

這個「蜘蛛俠」是我不知道該怎麼做的,我不確定是否可以用PHP這樣的語言來做。如果可能的話我該怎麼辦?

回答

1

是的,它是。您可以使用fopen/fread甚至file_get_contents等任何函數將給定URL的HTML讀取爲字符串,然後您可以使用DOMDocument :: loadHTML解析它,並使用DOMXPath獲取所有元素的列表以及所有元素的列表他們的屬性(目標,href)。

1

是的它非常有可能使用php來做到這一點。

嘗試使用curl讓頁面和regex,更具體preg_match_all功能在這裏過濾上的捲曲的鏈接

更多:PHP: cURL - Manual 更多關於正則表達式的位置:PHP: preg_match_all - Manual

0

正則表達式可能會失敗/出現誤報。使用PHP的DomDocument類和/或xpath來查找給定頁面上的鏈接。

http://us.php.net/manual/en/book.dom.php http://php.net/manual/en/class.domxpath.php

相關問題