Извлечь заголовок с веб-страницы, используя только URL - PullRequest
0 голосов
/ 20 июля 2011

Я хочу повторить некоторые функции с Digg.com, когда вы публикуете новый адрес, он автоматически сканирует URL и находит заголовок страницы.

Я программирую на классическом ASP и VBScript и использую JavaScript.Кто-нибудь знает сценарий, чтобы это произошло? ..

Заранее большое спасибо ..

Пол

Ответы [ 2 ]

2 голосов
/ 21 июля 2011

Это отчасти элементарный пример. Вы, вероятно, должны включить некоторые данные проверки.

Страница 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

Надеюсь, это поможет.

0 голосов
/ 20 июля 2011
  1. Отправка URL-адреса с клиентской стороны на серверную с использованием javascript (ajax).
  2. Загрузка html-страницы по ее URL-адресу с использованием asp на сервере.
  3. Разбор html-страницы, извлечение заголовка.
  4. Отправить заголовок клиенту.
...