作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我刚刚尝试用 HTMLUnit 创建一个程序,它可以使用用户输入的数据登录网站(当然,它可以做更多,但这是最重要的事情)。不幸的是,该网站总是将我重定向到一个网站,在那里我必须输入谷歌验证码才能继续。这是我的代码:
public static void main (String[] args) throws FailingHttpStatusCodeException, MalformedURLException, IOException, InterruptedException{
final WebClient webClient = new WebClient(BrowserVersion.CHROME);
final HtmlPage page1 = webClient.getPage("http://some.website/login");
final HtmlForm form = page1.getFirstByXPath("//*[@id=\"section-main\"]/div/div[4]/div[2]/div[8]/table/tbody/tr/td/div/div/div/div/table/tbody/tr/td[2]/form");
final HtmlSubmitInput button = form.getInputByValue("Login");
final HtmlTextInput email = form.getInputByName("username");
final HtmlPasswordInput password = (HtmlPasswordInput) form.getByXPath("//*[@id=\"section-main\"]/div/div[4]/div[2]/div[8]/table/tbody/tr/td/div/div/div/div/table/tbody/tr/td[2]/form/div[4]/input").get(0);
email.setValueAttribute("some@email.com");
password.setValueAttribute("aPassword");
final HtmlPage page2 = button.click();
}
它不起作用,它为按钮、电子邮件和密码返回 NullPointerException,因为它找不到表单。我知道 JDownloader 已经构建了类似的东西,但它在下载页面上不可用。所以,我的问题是:如何向用户显示验证码并让他们输入单词?
最佳答案
您需要使用验证码解析页面并获取验证码图像的链接。稍后您需要获取图像数据的内容并使用 ImageIO
创建 BufferedImage
。最后一步是创建一个窗口 JFrame
并为用户显示验证码。完美的解决方案是提示输入并发布答案。是的,这是可能的,我过去实现过完全相同的解决方案。
关于java - 如何在 java 中显示谷歌验证码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29211509/
我是一名优秀的程序员,十分优秀!