gpt4 book ai didi

java - 登录网站以在java中抓取数据

转载 作者:行者123 更新时间:2023-11-30 03:39:01 25 4
gpt4 key购买 nike

我正在尝试登录以下网站:http://www.deeproute.com .登录表单字段如下:

<input type="hidden" name="cookieexists" value="false">
<input size=12 type=name name=name>
<input size=12 type=password name=password>
<input type=submit name=subbera value="Login">

这是我的代码,我在其中尝试使用 HttpClient 登录并使用 Jsoup 解析生成的 html。不幸的是,这会返回处于相同未登录状态的页面的原始 html。

        HttpResponse res = null;
Document homePage = null;
HttpEntity entity = null;

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.deeproute.com");
String html = null;

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
nameValuePairs.add(new BasicNameValuePair("cookieexists", "false"));
nameValuePairs.add(new BasicNameValuePair("name", username));
nameValuePairs.add(new BasicNameValuePair("password", pass));

try {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
res = httpclient.execute(httppost);

} catch (IOException e) {

e.printStackTrace();
}

if (res != null) {

try {
html = EntityUtils.toString(res.getEntity());
homePage = Jsoup.parse(html);
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

我该怎么做才能解决这个问题?

最佳答案

仅使用 jSoup 代码的工作解决方案。

  • 第 1 步。获取登录表单
  • 第 2 步。发布带有 cookie 和所有参数的表单。

public static void main(String[] args) throws Exception {

Connection.Response loginForm = Jsoup.connect("http://deeproute.com/deeproute/default.asp")
.method(Connection.Method.GET)
.execute();

Document document = Jsoup.connect("http://deeproute.com/deeproute/default.asp")
.data("cookieexists", "false")
.data("name", "username")
.data("password", "pass")
.data("subbera", "Login")
.cookies(loginForm.cookies())
.post();

}

关于java - 登录网站以在java中抓取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16123543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com