Как я могу разобрать html мета описания с классическим asp xmlhttp
Я использую классический код с синтаксическим анализом HTML метаданных описания:
HTML пример:
<meta name="keywords" content="Software AG, Altenkesseler Straße 17, Saarbrücken, Saarland, software ag, Ofis" />
Код разбора:
Baslangic = InStr(1,sdata,"<meta name=" & Chr(34) & "keywords" & Chr(34), 1) + Len("<meta name=" & Chr(34) & "keywords" & Chr(34))
Baslangic = InStr(Baslangic,sdata,Chr(34),1)+1
Genislik = InStr(Baslangic,sdata,Chr(34),1) - Baslangic
KeywordAl= Mid(sdata, Baslangic, Genislik)
это работа, но когда HTML-код меняет расположение записей, например:
<meta content="Software AG, Altenkesseler Straße 17, Saarbrücken, Saarland, software ag, Ofis" name="keywords" />
это не работает мой код. Есть ли способ бегать с обеих сторон? регулярное выражение или на моем пути.
благодарю вас
2 ответа
Вы можете попробовать что-то вроде этого:
meta = "<meta name=""keywords"" content=""Software AG, Altenkesseler Straße 17, Saarbrücken, Saarland, software ag, Ofis"" />"
if InStr( meta, "content=" ) > 0 then
arrMeta = Split( meta, "content=" )
keywords = arrMeta( 1 ) ''-- your data will be in the 2nd row of the array
keywords = Trim( Replace( Replace( Replace( keywords, """", "" ), "/>", "" ), "name=keywords", "" ) )
end if
Response.Write keywords
if (instr(1, sdata,"<meta ", 1)=1 and instr(7, sdata, "name=""keywords""", 1)>6) then
Set regEx = New RegExp
regEx.Pattern = "content=""(.+?)"""
regEx.IgnoreCase = True
Set matches = regEx.Execute(sdata)
if matches.Count > 0 then
KeywordAl = matches(0).SubMatches(0)
end if
end if