2017年11月15日 星期三

使用JSoup Login網站取得cookie

目的:使用JSoup傳送帳號密碼取得Cookie,以便使用此cookie登入後繼續瀏覽網頁

Connection.Response res = Jsoup.connect("http://www.example.com/login.php")
    .data("username", "myUsername", "password", "myPassword")
    .method(Method.POST)
    .execute();

Document doc = res.parse();
String sessionId = res.cookie("SESSIONID"); 


比較需要注意的是data內的資訊,
根據Connection api 指出

Add a number of request data parameters. Multiple parameters may be set at once, e.g.: .data("name", "jsoup", "language", "Java", "language", "English"); creates a query string like: ?name=jsoup&language=Java&language=English

表示是送出一串request至web認證,而前面的是key,後面的是value,依序放入connect內。
key的取得方法,以yahoo
  1. 右鍵開啟檢查(Inspect)
  2. 切換到Network
  3. 先點左上角的清空按鈕(紅按鈕旁)
  4. 輸入測試帳號
  5. 可以看到Name欄位多了一個data(有時可能多個,可從名字看出可能是哪一個)
  6. 拉到最下面的From Data
  7. 此例的key即為username/passwd
另外 Jsoup.connect("http://www.example.com/login.php") 這裡面的url也可從此視窗最上面的Request URL中取得


沒有留言:

張貼留言