当我使用下面的HttpBuilder
解析HTML时,我没有收到完整的HTML,就像我在访问该页面并进行检查时所看到的那样。例如,在生成的文件中看不到<img>
标记。
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7' )
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.JSON
import groovy.json.*
def http = new HTTPBuilder('http://www.google.com')
def html = http.get(uri: 'http://www.imdb.com/title/tt2004420/', contentType: groovyx.net.http.ContentType.TEXT) { resp, reader ->
def p = new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parseText(s)
new File("/Users/../Documents/temp.txt") << p
}
我希望通过解析来获取该html页面上的图像数量。
答案 0 :(得分:0)
这是因为当你解析文件并显示它时,只显示内容 - 没有标签。运行以下脚本后:
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7' )
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.JSON
import groovy.json.*
def http = new HTTPBuilder('http://www.google.com')
def html = http.get(uri: 'http://www.imdb.com/title/tt2004420/', contentType: groovyx.net.http.ContentType.TEXT) { resp, reader ->
def p = new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parseText(reader.text)
new File("lol") << p
}
lol
文件包含例如以下一行:
IMDbMoreAllTitlesTV EpisodesNamesCompaniesKeywordsCharactersQuotesBiosPlotsMovies,
在解析之前(其中一部分)看起来:
<div class="quicksearch_dropdown_wrapper">
<select name="s" id="quicksearch" class="quicksearch_dropdown navbarSprite"
onchange="jumpMenu(this); suggestionsearch_dropdown_choice(this);">
<option value="all" >All</option>
<option value="tt" >Titles</option>
<option value="ep" >TV Episodes</option>
<option value="nm" >Names</option>
<option value="co" >Companies</option>
<option value="kw" >Keywords</option>
<option value="ch" >Characters</option>
<option value="qu" >Quotes</option>
<option value="bi" >Bios</option>
<option value="pl" >Plots</option>
</select>
</div>
如果您想查看标签,请使用以下脚本:
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7' )
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.JSON
import groovy.json.*
def http = new HTTPBuilder('http://www.google.com')
def html = http.get(uri: 'http://www.imdb.com/title/tt2004420/', contentType: groovyx.net.http.ContentType.TEXT) { resp, reader ->
new File("lol") << reader.text
}