首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HtmlUnit vk授权

HtmlUnit vk授权
EN

Stack Overflow用户
提问于 2019-11-15 20:13:05
回答 1查看 34关注 0票数 0

我是新的Html单位,我试图进入vk网站,但每次它都不想进入这个网站。我看了几个教程,里面有几乎相同的代码,有了这个代码,我就进入了https://news.ycombinator.com/

这是我的代码;

代码语言:javascript
复制
import java.util.logging.*;

import org.apache.commons.logging.LogFactory;

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlButton;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class ContactApp {

public static WebClient login(String url , String login , String password) throws Exception {
    // create webClient
    WebClient webClient = new WebClient();

    //open logger
    loggingAll();

    // options for loggers 
    webClient.getOptions().setJavaScriptEnabled(true);
    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
    webClient.getOptions().setThrowExceptionOnScriptError(false);

    // setting all configuration
    HtmlPage page = webClient.getPage(url);
    HtmlForm htmlForm = page.getFirstByXPath("//*[@id=\"login_form\"]");
    HtmlInput loginInput = htmlForm.getFirstByXPath("//*[@id=\"email\"]");
    HtmlInput passwordInput = htmlForm.getFirstByXPath("//*[@id=\"pass\"]");

    // set login and password attribute
    loginInput.setValueAttribute(login);
    passwordInput.setValueAttribute(password);
    HtmlButton buttonClick = htmlForm.getFirstByXPath("//*[@id=\"login_button\"]");

    htmlForm = buttonClick.getEnclosingForm();
    HtmlPage htmlPage = webClient.getPage(htmlForm.getWebRequest(null));
    return webClient;
}

public static void main(String[] args) throws Exception{
    String url = "https://vk.com/login";
    String username = "login";
    String password = "password";

    System.out.println("Start !!!");

    WebClient webClient = login(url , username , password);
    HtmlPage page = webClient.getPage("https://vk.com/mypage");

    // I am checking getting a name to my page by xpath;
    String entering = page.getFirstByXPath("//*[@id=\"page_info_wrap\"]/div[1]/h2");

    // Entering to the site // 
    // He always send me - null in text; 
    System.out.println(entering);

    System.out.println("End!!!");
}

}

这是我的逻辑,谢谢你;

EN

回答 1

Stack Overflow用户

发布于 2019-11-15 23:14:47

如果你想登录https://vk.com/mypage,你需要调整XPath,因为它有不同的html和it。举个例子,这个站点上的html表单的id是"quick_login_form“。在火狐中按F12,然后进入inspect选项卡。您可以在那里看到html和html dom项的ids。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58876842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档