asp 获取网址的title keywords description

和查询网址title keywords description的信息一样
可自动辨别网站的编码将网站的信息查询出来

在 ASP 中获取网站的 title、keywords、description 信息可以使用第三方库或自行编写代码来实现。一种常用的方法是使用正则表达式来匹配页面源代码中的相应信息。


为了能够自动辨别网站的编码,可以使用第三方库来解析页面源代码,例如 HtmlAgilityPack。


下面是一个简单的示例代码:

Dim html As String
Dim title As String
Dim keywords As String
Dim description As String

html = GetHTML("http://example.com")
title = GetTitle(html)
keywords = GetKeywords(html)
description = GetDescription(html)

Function GetHTML(ByVal URL As String) As String
    Dim objXMLHTTP As Object
    Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    objXMLHTTP.Open "GET", URL, False
    objXMLHTTP.Send
    GetHTML = objXMLHTTP.responseText
    Set objXMLHTTP = Nothing
End Function

Function GetTitle(ByVal html As String) As String
    Dim pattern As String
    pattern = "(?i)<title[^>]*>\s*(.*?)\s*</title>"
    GetTitle = GetMatch(html, pattern)
End Function

Function GetKeywords(ByVal html As String) As String
    Dim pattern As String
    pattern = "(?i)<meta\s+name=""keywords""\s+content=""(.*?)"""
    GetKeywords = GetMatch(html, pattern)
End Function

Function GetDescription(ByVal html As String) As String
    Dim pattern As String
    pattern = "(?i)<meta\s+name=""description""\s+content=""(.*?)"""
    GetDescription = GetMatch(html, pattern)
End Function

Function GetMatch(ByVal html As String, ByVal pattern As String) As String
    Dim objRegExp As Object
    Set objRegExp = New RegExp
    objRegExp.Pattern = pattern
    objRegExp.IgnoreCase = True
    objRegExp.Global = True
    If objRegExp.Test(html) Then
        GetMatch = objRegExp.Execute(html)(0).SubMatches(0)
    Else
        GetMatch = ""
    End If
    Set objRegExp = Nothing
End Function

上面的代码使用正则表达式来匹配页面中的 title、keywords、description 信息。获取到页面信息后,可以使用这些信息进行后续的处理。


请注意,上面的代码只是一个简单的示例,在实际应用中可能需要进行更多的处理。例如,确保网站编码正确解析,处理网站挂掉或者网络连接异常的情况。


另外,使用第三方库可能更加方便,如使用HTML Agility Pack来解析页面信息。