[英]Auto login on website, stay logged in, and parse with Jsoup (java)
在過去的三個星期中,我試圖編寫一個程序,該程序登錄到網站上並循環瀏覽頁面以過濾特定信息(指定的行/表列)。 公平地說,這個程序是我自己(用Java編寫)的原因。 我創建了一種自動填充程序,該方法可以運行,但是速度很慢,因為它必須再次為每個頁面登錄。 因此,我在想,為什么我的第一個(以下)程序無法正常工作。 由於某種原因我無法登錄,但是一旦我從登錄頁面切換到特定頁面(僅在登錄時才可以訪問),我就會被重定向到登錄頁面。 為了這個問題,我創建了一個假賬戶。 也許有人可以幫助或告訴我在哪里可以進一步閱讀本主題。 我猜餅干有問題,盡管我不確定。
try {
String url1 = "https://www.novaragnarok.com/";
String url2 = "https://www.novaragnarok.com/?module=vending&action=item&id=2499";
Connection.Response res = Jsoup
.connect(url1)
.followRedirects(true)
.data("username", "stackoverflowww", "password", "stackpw")
.method(Method.POST)
.execute();
Map<String, String> cookies = res.cookies();
Document doc = Jsoup.connect(url2)
.cookies(cookies)
.followRedirects(true)
.get();
System.out.println(cookies);
System.out.println(doc);
} catch (IOException e) {
e.printStackTrace();
}
嘗試這個
String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)" +
" Chrome/56.0.2924.87 Safari/537.36";
public void parseWebsite(){
try{
Connection.Response homepage = Jsoup.connect("https://www.novaragnarok.com/").userAgent(USER_AGENT)
.method(Connection.Method.GET).timeout(6000).execute();
Connection.Response login = Jsoup.connect("https://www.novaragnarok.com//?module=account&action=login&return_url=")
.cookies(homepage.cookies()).data("txtbox", "stackoverflowww")
.data("password", "stackpw").userAgent(USER_AGENT).method(Connection.Method.POST)
.timeout(6000).execute();
Connection.Response url2 = Jsoup.connect("https://www.novaragnarok.com/?module=vending&action=item&id=2499")
.cookies(login.cookies()).userAgent(USER_AGENT).method(Connection.Method.GET).timeout(6000).execute();
//Your Code here
}catch (SocketException e){
e.printStackTrace();
}
catch (UncheckedIOException e){
e.printStackTrace();
}
catch(Exception e){
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.