Java模拟登录新浪报错

发布于 2021-12-01 03:54:43 字数 1648 浏览 991 评论 1

import java.io.IOException;
import java.net.MalformedURLException;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class SinaLoginTest {
public static void main(String[] args) throws Exception {
WebClient client = new WebClient(BrowserVersion.FIREFOX_24);
client.getOptions().setJavaScriptEnabled(true); // 默认执行js,如果不执行js,则可能会登录失败,因为用户名密码框需要js来绘制。
client.getOptions().setCssEnabled(false);
client.setAjaxController(new NicelyResynchronizingAjaxController());
client.getOptions().setThrowExceptionOnScriptError(false);

HtmlPage page = client
.getPage("http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.16)");
// System.out.println(page.asText());

// 登录

HtmlInput ln = page.getHtmlElementById("username");
HtmlInput pwd = page.getHtmlElementById("password");
HtmlInput btn = page
.getFirstByXPath(".//*[@id='vForm']/div[3]/ul/li[6]/div[2]/input");

ln.setAttribute("value", "159890555555");
pwd.setAttribute("value", "nmj121");

HtmlPage page2 = btn.click();
// 登录完成,现在可以爬取任意你想要的页面了。
System.out.println("nnn");
// System.out.println(page2.asText());

HtmlPage page3 = client.getPage("http://weibo.com/friends?leftnav=1&wvr=5&isfriends=1&step=2");
System.out.println(" : " + page3.asXml());

client.closeAllWindows();
}

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

因为看清所以看轻 2021-12-01 08:54:47

感觉是运行期你使用的第三方库没有进入classpath

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文