尝试访问Login元素但没有元素id或类

时间:2013-12-09 01:59:31

标签: java jsoup httpurlconnection getelementbyid

嗨,新编程无法找到这样的问题。我试图为一个免费的金融网站创建一个自动登录脚本,所以我可以刮掉一些东西。我试图访问这个网站 http://www.quantumonline.com/login.cfm。然后访问用户名和密码框,这样我就可以通过java登录我的信息,然后抓取一些有用的信息。 但是,我没有看到任何访问用户名和密码框的元素。

我的代码基于此http://www.mkyong.com/java/how-to-automate-login-a-website-java-example,但我没有使用HtpURLConnection,而是使用HttpURLConnection,因为此网站不使用Https。 当我使用Chrome来检查我得到的元素。

<input type="text" name="acctname" size="15">  //username element
<input type="password" name="pswrd" size="15">  //password element

//如果没有elementid,我如何找到元素?以下是网站出错的代码。我使用了输入名称字段  作为elementid但那显然不正确

public String getFormParams(String html, String username, String password)
        throws UnsupportedEncodingException {

    System.out.println("Extracting form's data...");

    Document doc = Jsoup.parse(html);

    // For id
    Element loginform = doc.getElementById("acctname");

    Elements inputElements = loginform.getElementsByTag("pswrd"); <<errors here with NULL pointer exception, because there is no tag pswrd. 

1 个答案:

答案 0 :(得分:2)

[attr=value]选择器与name属性一起使用(请参阅here)。

例如,您的示例代码:

Document doc = Jsoup.parse(html);

Element acctname = doc.select("input[name=acctname]").first();
Element pswrd = doc.select("input[name=pswrd]").first();

System.out.println(acctname);
System.out.println(pswrd);

将输出:

<input type="text" name="acctname" size="15" />
<input type="password" name="pswrd" size="15" />
相关问题