2011-07-20 23 views
0

Digg.comからいくつかの機能を複製すると、新しいアドレスを投稿すると自動的にURLがスキャンされ、ページのタイトルが検索されます。URLだけを使用してウェブページからタイトルを抽出

私は古典的なASPとVBScriptでプログラミングしていて、javascriptを使っています。誰もがこれを行うためのスクリプトを知って..?事前に

感謝..

ポール

答えて

2

これはやや基本的な例です。おそらく、いくつかのデータ検証を含めるべきです。

ASPページには、これは、基本的なJavaScriptのPOSTの実装です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) 
%> 

と呼ばれるべきです。あなたは、あなたが好きな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
  1. にはJavaScript(AJAX)を使用して、サーバーサイドするクライアント側からURLを送信します。
  2. ロードするHTMLページは、serversideのaspを使用したURLです。
  3. Parse HTMLページでは、タイトルを抽出します。
  4. クライアント側にタイトルを送信します。
+0

良い解決策のようです。コーディングに少し助けを使うことができました。 – neojakey

+0

@neojakey、私はaspの達人ではありませんので、ここでお手伝いできません。 jsの部分に関しては、['jQuery.ajax()'](http://api.jquery.com/jQuery.ajax/)や、他のラッパー、fi、[http://ajaxian.com/archives /100-line-ajax-wrapper](http://ajaxian.com/archives/100-line-ajax-wrapper) –

+0

私は本当に感謝しています。 – neojakey

関連する問題