2012-09-06 30 views
0

您好,我需要一個正則表達式來獲得本地域的所有鏈接沒有外部網站。 到現在我有這個,但只返回頁面外經典的ASP正則表達式來獲取本地域的所有頁面

<%function getPage(strURL) 
dim strBody, objXML 

set objXML = CreateObject("Msxml2.ServerXMLHTTP.6.0") 
    objXML.Open "GET", strURL, False 
    'objXML.setRequestHeader "User-Agent", "ddd" '=== falsify the agent 
    'objXML.setRequestHeader "Content-Type", "text/html; Charset:ISO-8859-1" 
    'objXML.setRequestHeader "Content-Type", "text/html; Charset:UTF-8" 
    objXML.Send 
    status = objXML.status 
if err.number <> 0 or status <> 200 then 
    if status = 404 then 
     Response.Write "[EFERROR]Page does not exist (404)." 
    elseif status >= 401 and status < 402 then 
     Response.Write "[EFERROR]Access denied (401)." 
    elseif status >= 500 and status <= 600 then 
     Response.Write "[EFERROR]500 Internal Server Error on remote site." 
    else 
     Response.write "[EFERROR]Server is down or does not exist." 
    end if 
     end if 
    strBody = objXML.responseText 

set objXML = nothing 
getPage = strBody 
'First, create a reg exp object 
Dim objRegExp 
Set objRegExp = New RegExp 

objRegExp.IgnoreCase = True 
objRegExp.Global = True 
objRegExp.Pattern = "<a\s+href=""http://(.*?)"">\s*((\n|.)+?)\s*</a>" 

'Display all of the matches 
Dim objMatch 
For Each objMatch in objRegExp.Execute(strBody) 
    Response.Write("http://" & objMatch.SubMatches(0) & "<br>") 
Next 

end function 


getPage("http://www.google.com") 
%> 

謝謝

+0

我試着做一種蜘蛛從主頁獲取所有內部鏈接,並向我展示屏幕 – Teodor

回答

0

或許說明明顯,但如果你在尋找「localdomain.com」鏈接是不是這只是

objRegExp.Pattern = "<a\s+href=""http://(.*?)localdomain\.com"">\s*((\n|.)+?)\s*</a>" 

編輯: 的正則表達式模式或許可以用在URL中傳遞的是這樣的:

objRegExp.Pattern = "<a\s+href=""" & strURL & "(.*?)"">\s*((\n|.)+?)\s*</a>" 

檢索匹配將需要追加該strURL太:

For Each objMatch in objRegExp.Execute(strBody) 
    Response.Write("http://" & strURL & objMatch.SubMatches(0) & "<br>") 
Next 
+0

謝謝。我發佈了這個,因爲我不知道正則表達式...你的模式不會在我的例子中返回任何東西。我只需要一個從主頁返回localdomain URL的模板。 – Teodor

+0

噢,對不起..我急匆匆地回答......你已經把你的網址從課程中傳遞出去了......它應該使用在URL中傳遞的...我將編輯我的答案。 – AardVark71

+0

它不會做我所期望的..它應該顯示我在strURL的索引頁中的所有網址的列表,這是strURL ..我的意思是如果我看到有一個鏈接到yahoo.com忽略..僅向我展示索引頁面上strURL上的鏈接..所以只有在google.com上託管的頁面 – Teodor

相關問題