2009-08-31 8 views

答えて

1

外部ページがローカルであるか、別のドメインにあるかによって異なります。ローカルの場合は、$ .load()をjQueryライブラリで使用できます。これは、それをロードするために、リモート・DOM内のどの要素を指定するためのオプションのパラメータがあります。

$("#links").load("/Main_Page #jq-p-Getting-Started li"); 

ページが別のドメインにある場合は、プロキシスクリプトが必要になります。 PHPとphpQuery(php port of jQuery)ライブラリでこれを行うことができます。 file_get_contents()を使用して実際のリモートDOMを取得し、jQueryライクなセレクタに基づいて必要な要素を取り出します。

+0

ページはローカルではありません。asp.netなどのライブラリはありますか? – Wineshtain

0
$f = fopen('http://www.quran.az/2/255', 'r'); 

のように...

0

HttpWebRequestクラスを使用し、.NETでWebページをロードすること。

MSDN、hereから取られた例:これはページ全体はなく、それの部分だけを返すこと

private string StringGetWebPage(String uri) 
    { 
     const int bufSizeMax = 65536; // max read buffer size conserves memory 
     const int bufSizeMin = 8192; // min size prevents numerous small reads 
     StringBuilder sb; 

     // A WebException is thrown if HTTP request fails 
     try 
     { 
      // Create an HttpWebRequest using WebRequest.Create (see .NET docs)! 
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); 

      // Execute the request and obtain the response stream 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
      Stream responseStream = response.GetResponseStream(); 

      // Content-Length header is not trustable, but makes a good hint. 
      // Responses longer than int size will throw an exception here! 
      int length = (int)response.ContentLength; 

      // Use Content-Length if between bufSizeMax and bufSizeMin 
      int bufSize = bufSizeMin; 
      if (length > bufSize) 
       bufSize = length > bufSizeMax ? bufSizeMax : length; 

      // Allocate buffer and StringBuilder for reading response 
      byte[] buf = new byte[bufSize]; 
      sb = new StringBuilder(bufSize); 

      // Read response stream until end 
      while ((length = responseStream.Read(buf, 0, buf.Length)) != 0) 
       sb.Append(Encoding.UTF8.GetString(buf, 0, length)); 

     } 
     catch (Exception ex) 
     { 
      sb = new StringBuilder(ex.Message); 
     } 

     return sb.ToString(); 
} 

注意。あなたはあなたが探している情報を見つけるためにページをはがす必要があります。

0

マイケル・トッドが概説したようにページ全体を取得したら、コンテンツをスライスする静的手段として部分文字列メソッドを使用するか、コンテンツを取得するための動的方法として正規表現を使用する必要があります。 ASP.NetのRegexのイントロ記事はhereです。がんばろう!

+0

OPは 'XmlDocument'を使ってページを解析して特定のノードを取得しようとすることもできます。 – outis

関連する問題