我一直在搞乱HtmlUnit,特别是这个网站,因为它有很多我想要习惯的功能。我之前发布过它,但这主要是为了从网站上获取信息,最终取得了成功。现在我想填写表格并提交。
当前测试代码:
def url = "http://www.hidemyass.com/proxy-list/"
client = new WebClient(BrowserVersion.FIREFOX_3)
client.javaScriptEnabled = false
page = client.getPage(url)
form = page.getFormByName("proxyform")
//get portInputField and set value
portField = form.getInputByName("p")
portField.setValueAttribute("80")
//select checkbox 1 & 2 from anonymity level
//click "Update Results"
//get new page url
//grab information
//save
注释掉的部分是我不确定该做什么的地方。我继续尝试,但想询问我应该做什么的输入。
尝试:
def url = "http://www.hidemyass.com/proxy-list/"
page = client.getPage(url)
portField = page.getHtmlElementById("ports").setValueAttribute("80")
submitButton = page.getByXPath("/html/body//form//input[@type='image']")
page2 = submitButton.get(0).click()
println page2
上面的代码段打印出来: HtmlPage(http://www.hidemyass.com/proxy-list/search-1)@17168934
我希望得到一个新页面,然后我可以从搜索中解析信息。有什么想法吗?
我不相信我使用的语言会产生太多差异;但是,我使用的是Groovy。
修改
我设法得到了我想要的东西,但它返回如下:
HtmlPage(http://www.hidemyass.com/proxy-list/search-1)@23713629
<?xml version="1.0" encoding="UTF-8"?><td>109.123.00.00</td>
有没有办法只获取我正在寻找的信息:<td>109.123.00.00</td>
或者我只是需要手动删除信息?
修改
.asText()解决了我的问题,但对CSS提出了一些警告。我应该担心吗?