2011-07-25 5 views
3

は、私は、WebページのHTMLを抽出する必要が 私は次のgetを作り、グルーヴィーでHTTPuilderを使用しています:私は探検するときHTTPBuilder - WebページのHTMLコンテンツを取得するにはどうすればよいですか?

def http = new HTTPBuilder('http://www.google.com/search') 
http.request(Method.GET) { 
requestContentType = ContentType.HTML 
response.success = { resp, reader -> 
    println "resp: " + resp 
    println "READER: " + reader 
} 
response.failure = { resp, reader -> 
    println "Failure" 
} 
} 

私が得る応答、同じHTMLが含まれていない私が見ることができますwww.google.com/searchのhtmlソース実際、それはHTMLでもなく、ページのhtmlソースで見ることができる同じ情報を含んでいません。 headers.Accept = 'text/html、application/xhtml + xml、application/xml; q = 0.9,/; q = 0.8'、headers.Accept = 'textなどの異なるヘッダーを設定しようとしました。/html '、ユーザーエージェントの設定など)、結果は同じです。 http builderを使用してwww.google.com/search(または任意のウェブページ)のhtmlを取得するにはどうすればよいですか?

答えて

0

なぜhttpBuilderを使用しますか? httpbuilderは、自動コンテンツの種類によって結果を解析しますので、あなたの代わりに、Webページ

0

の内容を抽出するために

def url = "http://www.google.com/".toURL() 

println url.text` 

を使用する場合があります。 生のHTMLを取得するには、エンティティからテキストを取得してください。

def htmlResult = http.get(uri: url, contentType: TEXT){ resp-> 
    return resp.getEntity().getContent().getText() 
} 
関連する問題