【问题标题】:Extract Title from web page, using just the url从网页中提取标题,仅使用 url
【发布时间】:2011-07-20 16:16:19
【问题描述】:

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

我正在使用经典的 ASP 和 VBScript 编程并使用 javascript。任何人都知道实现这一点的脚本..?

提前非常感谢..

保罗

【问题讨论】:

    标签: javascript vbscript asp-classic


    【解决方案1】:

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

    应该将 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
    

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:
      1. 使用 javascript(ajax) 将 url 从客户端发送到服务器端。
      2. 在服务器端使用asp通过它的url加载html页面。
      3. 解析html页面,提取标题。
      4. 将标题发送到客户端。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      相关资源
      最近更新 更多