仅使用网址从网页中提取标题

时间:2011-07-20 16:16:20

标签: javascript vbscript asp-classic

我想从Digg.com复制一些功能,当你发布一个新地址时,它会自动扫描网址并找到页面标题。

我使用经典的ASP和VBScript进行编程并使用javascript。任何人都知道一个脚本来实现这个目标..?

非常感谢...

2 个答案:

答案 0 :(得分:2)

这是一个基本的例子。您可能应该包含一些数据验证。

应该调用ASP页面,例如getPageTitle.asp

<%
Response.Buffer = True

Dim strURL, objXMLHTTP, objXML, strContents
Dim objRegExp, strHTML, strPattern, colMatches, strTitle

strURL = Request.Form("url")

Set objXMLHTTP = Server.CreateObject ("Microsoft.XMLHTTP")
'Or if this doesn't work then try :
'Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")

objXMLHTTP.Open "GET", strURL, False

objXMLHTTP.Send

strContents = objXMLHTTP.ResponseText

Set objXMLHTTP = Nothing

Set objRegExp = New RegExp

strPattern = "<title>(.*?)<\/title>"

objRegExp.Pattern = strPattern
objRegExp.IgnoreCase = True
objRegExp.Global = True

Set colMatches = objRegExp.Execute(strContents)

If colMatches.Count > 0 then
    strTitle = objMatches(0).Value
Else
    strTitle = ""
End If

Set objRegExp = Nothing

Response.write(strTitle)
%>

这是一个基本的JavaScript POST实现。你可以用你喜欢的任何JS框架来修改它。

var script = "http://www.example.com/getPageTitle.asp"
var page2check = "http://www.example.com/somePageToCheck.html"

function getXMLHttpRequestObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}
var http = new getXMLHttpRequestObject();

var parameters = "url="+page2check;
http.open("POST", script, true);

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", parameters .length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {
  if(http.readyState == 4) {
    alert(http.responseText);
  }
}
http.send(parameters);

var pageTitle = http.ResponseText

我希望这会有所帮助。

答案 1 :(得分:0)

  1. 使用javascript(ajax)将来自客户端的网址发送到服务器端。
  2. 在服务器端使用asp加载html页面。
  3. 解析html页面,提取标题。
  4. 将标题发送给客户。