HTTPBuilder - 如何获取网页的HTML内容?

时间:2011-07-25 13:35:42

标签: html-content-extraction httpbuilder

我需要提取网页的HTML 我在groovy中使用HTTPuilder,得到以下结果:

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',标题。 Accept ='text / html',设置用户代理等),但结果是一样的。 如何使用http builder

获取www.google.com/search(或任何网页)的html

2 个答案:

答案 0 :(得分:0)

为什么要使用httpBuilder?您可以改为使用

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

println url.text`

提取网页内容

答案 1 :(得分:0)

因为httpbuilder会根据内容类型自动解析结果。 获取原始html,尝试从实体

获取文本
def htmlResult = http.get(uri: url, contentType: TEXT){ resp->
    return resp.getEntity().getContent().getText()
}