我需要提取一个网页的HTML我在groovy中使用HTTPuilder,生成以下get:
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源中看到的相同信息。我试过设置不同的头(例如,头。Accept = 'text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8', headers。Accept = 'text/html',设置user-agent,等等),但结果是一样的。我怎么能得到www.google.com/search(或任何网页)的html使用http生成器?
为什么使用httpBuilder?您可以使用
def url = "http://www.google.com/".toURL()
println url.text`
提取网页内容
因为httpbuilder会根据内容类型自动解析结果。要获取原始html,请尝试从Entity
获取文本def htmlResult = http.get(uri: url, contentType: TEXT){ resp->
return resp.getEntity().getContent().getText()
}