HTTPBuilder - Как я могу получить HTML-контент веб-страницы?
Мне нужно извлечь 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', headers.Accept = 'text/html', установка user-agent и т. д.), но результат тот же. Как я могу получить HTML-код www.google.com/search (или любой веб-страницы), используя http builder?
2 ответа
Потому что httpbuilder автоматически проанализирует результат по типу контента. чтобы получить необработанный HTML, попробуйте получить текст от Entity
def htmlResult = http.get(uri: url, contentType: TEXT){ resp->
return resp.getEntity().getContent().getText()
}
Зачем использовать httpBuilder? Вы могли бы вместо этого использовать
def url = "http://www.google.com/".toURL()
println url.text`
извлечь содержимое веб-страницы