2011-01-13 5 views

答えて

0

私は理論的にはこれを行うだろうか知っている - はい、あなたはページのコンテンツをダウンロードする必要があり、あなたは

0

を必要とするものは何でものためにそれを解析し、変数に内容を保存し、使用cURLのか、それをダウンロードするには、いくつかのアプリケーションとあなたが望むものを探してください。また、microsoft.comのWebサイト全体を検索したい場合は、独自のWebクローラーを作成するか、既存のクローラーを使用するか、Googleのような検索エンジンAPIを使用する必要があります。

0

はい、ページをダウンロードする必要があります。完全なコンテンツを確実に取得するには、スクリプトを実行し、ブラウザと同様に動的コンテンツを含めることが必要です。

私たちによって制御されていないリモートリソース上の何かを "検索"することはできず、デフォルトでは "自分のコンテンツをスキャンする"という方法はありません。

ほとんどの場合、ブラウザエンジン(Webkitなど)でページを読み込み、そのエンジンの内部DOM構造を検索したいと思うでしょう。

0

自分で検索する場合は、明らかにページをダウンロードする必要があります。 この方法をお考えの場合は、Luceneをお勧めします(単純な部分文字列検索が必要な場合を除きます)。

または、あなたのためのWebサービスがあります。ウェブサービスにgrepのURLをリクエストして、その結果を返信することができます。

+0

URLを指定すると、特定の文字列がWebページに存在するかどうかの結果を与えるWebサービスを作成できますか? –

+0

@Syed、もちろん、どうしてですか?ガベの答えを見て、あなたはすでにそれらにアクセスする可能性があります... – st0le

+0

うん、それは私がそれを見て素敵なものでした。しかし、結果を取得するためのAPI、画像の結果などが見つかりました。しかし、私の目的のためにAPIを提案しています。つまり、リンクに単語の存在を検索することです。 –

1

ウェブページ上でhttpリクエストを行い、その中の必要な単語を検索できるようになったら、そのコンテンツをすべて取得する必要があります。

public static void main(String[] args) { 
    try { 
     URL url; 
     URLConnection urlConnection; 
     DataOutputStream outStream; 
     DataInputStream inStream; 

     // Build request body 
     String body = 
     "fName=" + URLEncoder.encode("Atli", "UTF-8") + 
     "&lName=" + URLEncoder.encode("Þór", "UTF-8"); 

     // Create connection 
     url = new URL("http://www.example.com"); 
     urlConnection = url.openConnection(); 
     ((HttpURLConnection)urlConnection).setRequestMethod("POST"); 
     urlConnection.setDoInput(true); 
     urlConnection.setDoOutput(true); 
     urlConnection.setUseCaches(false); 
     urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
     urlConnection.setRequestProperty("Content-Length", ""+ body.length()); 

     // Create I/O streams 
     outStream = new DataOutputStream(urlConnection.getOutputStream()); 
     inStream = new DataInputStream(urlConnection.getInputStream()); 

     // Send request 
     outStream.writeBytes(body); 
     outStream.flush(); 
     outStream.close(); 

     // Get Response 
     // - For debugging purposes only! 
     String buffer; 
     while((buffer = inStream.readLine()) != null) { 
      System.out.println(buffer); 
     } 

     // Close I/O streams 
     inStream.close(); 
     outStream.close(); 
    } 
    catch(Exception ex) { 
     System.out.println("Exception cought:\n"+ ex.toString()); 
    } 
} 
関連する問題