HTTPBuilder - Как я могу получить HTML-контент веб-страницы? - PullRequest
3 голосов
/ 25 июля 2011

Мне нужно извлечь HTML веб-страницы Я использую HTTPuilder в Groovy, делая следующее получить:

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-кода, который я вижу при изучении html-источника www.google.com/search. На самом деле, это не html, и он не содержит ту же информацию, которую я вижу в источнике html страницы. Я попытался установить разные заголовки (например, headers.Accept = 'text / html, application / xhtml + xml, application / xml; q = 0,9, / ; q = 0,8', заголовки. Принять = 'text / html', установка user-agent и т. д.), но результат тот же. Как я могу получить HTML-код www.google.com/search (или любой веб-страницы), используя http builder?

Ответы [ 2 ]

0 голосов
/ 16 января 2013

Поскольку httpbuilder автоматически проанализирует результат по типу контента.чтобы получить необработанный HTML, попробуйте получить текст от Entity

def htmlResult = http.get(uri: url, contentType: TEXT){ resp->
    return resp.getEntity().getContent().getText()
}
0 голосов
/ 22 августа 2011

Зачем использовать httpBuilder?Вместо этого вы можете использовать

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

println url.text`

для извлечения содержимого веб-страницы

...