3

groovy で HTTPuilder を使用している 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"
 }
}

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

4

2 に答える 2

0

httpBuilder を使用する理由 代わりに使用することもできます

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

println url.text`

ウェブページのコンテンツを抽出する

于 2011-08-22T08:11:02.610 に答える
0

httpbuilder はコンテンツ タイプによって結果を自動解析するためです。生のhtmlを取得するには、エンティティからテキストを取得してみてください

def htmlResult = http.get(uri: url, contentType: TEXT){ resp->
    return resp.getEntity().getContent().getText()
}
于 2013-01-16T05:07:38.397 に答える