Jsoup에 호스트별로 쿠키를 저장하는 간단한 쿠키 관리자가 있습니까? this thread의 예는 상당히 부족합니다.Jsoup로 쿠키를 관리하는 방법은 무엇입니까?
2
A
답변
2
Connection.Base
클래스에는 jsoup가 쿠키를 처리하는 방법에 대해 알아야 할 모든 것이 있습니다.
본질적으로, 그것은 당신이 각 연결에서 그들을 얻을 수 있도록 해줄 것입니다. 그러나 그것을 넘어서는 것은 당신이 그것들을 "관리"하는 것 이상의 것입니다.
8
Jsoup에서 작동하는 표준 솔루션을 찾지 못했습니다. 다음은 HashMap을 사용하여 간단한 쿠키 처리입니다. 아마 기능의 무리를 실종하지만 난 내 기본 크롤러 충분히 잘 작동 바랍니다 :
private static HashMap<String, HashMap<String, String>> host2cookies = new HashMap<String, HashMap<String, String>>();
public static String[] DownloadPage(URL url) throws Exception
{
Connection con = Jsoup.connect(url.toString()).timeout(600000);
loadCookiesByHost(url, con);
Document doc = con.get();
url = con.request().url();
storeCookiesByHost(url, con);
return new String[]{url.toString(), doc.html()};
}
private static void loadCookiesByHost(URL url, Connection con) {
try {
String host = url.getHost();
if (host2cookies.containsKey(host)) {
HashMap<String, String> cookies = host2cookies.get(host);
for (Entry<String, String> cookie : cookies.entrySet()) {
con.cookie(cookie.getKey(), cookie.getValue());
}
}
} catch (Throwable t) {
// MTMT move to log
System.err.println(t.toString()+":: Error loading cookies to: " + url);
}
}
private static void storeCookiesByHost(URL url, Connection con) {
try {
String host = url.getHost();
HashMap<String, String> cookies = host2cookies.get(host);
if (cookies == null) {
cookies = new HashMap<String, String>();
host2cookies.put(host, cookies);
}
cookies.putAll(con.response().cookies());
} catch (Throwable t) {
// MTMT move to log
System.err.println(t.toString()+":: Error saving cookies from: " + url);
}
}
+0
loadCookiesByHost (..)에서 쿠키의 항목을 반복하는 대신 [Connection # cookies (cookies)] (http://jsoup.org/apidocs/org/jsoup/Connection)을 사용할 수 있습니다. html # cookies-java.util.Map-) 맵에있는 모든 쿠키를 연결에 추가합니다. – Vulcan
관련 문제
- 1. jsoup로 param 값을 가져 오는 방법은 무엇입니까?
- 2. jsoup로 다운로드 크기를 제한하는 방법은 무엇입니까?
- 3. jsoup로 span 제목을 구문 분석하는 방법은 무엇입니까?
- 4. Jsoup로 긁기
- 5. 알림을 관리하는 방법은 무엇입니까?
- 6. 쿠키를 삭제하는 방법은 무엇입니까?
- 7. Google이 여러 도메인간에 인증을 관리하는 방법은 무엇입니까?
- 8. __utma, __utmz 등 쿠키를 관리하는 표준이 있습니까?
- 9. URL을 jsoup로 추출하십시오.
- 10. Jsoup로 거대한 HTML 스트림 파싱하기
- 11. CouchDB 코드를 관리하는 방법은 무엇입니까?
- 12. playn에서보기를 관리하는 올바른 방법은 무엇입니까?
- 13. 데이터베이스없이 데이터를 관리하는 방법은 무엇입니까?
- 14. ACL을 구성하고 관리하는 방법은 무엇입니까?
- 15. Android에서 활동을 관리하는 방법은 무엇입니까?
- 16. 목록을 관리하는 좋은 방법은 무엇입니까?
- 17. git으로 종속성을 관리하는 방법은 무엇입니까?
- 18. VS2010에서 버전을 관리하는 방법은 무엇입니까?
- 19. JavaScript에서 종속성을 관리하는 방법은 무엇입니까?
- 20. 원시 힙을 관리하는 방법은 무엇입니까?
- 21. jQuery로 쿠키를 만드는 방법은 무엇입니까?
- 22. URLConnection에서 쿠키를 보내는 방법은 무엇입니까?
- 23. 쿠키를 올바르게 삭제하는 방법은 무엇입니까?
- 24. Zend_Rest_Client로 쿠키를 처리하는 방법은 무엇입니까?
- 25. iframe 쿠키를 차단하는 방법은 무엇입니까?
- 26. Coldfusion에서 쿠키를 찾는 방법은 무엇입니까?
- 27. JavaScript로 쿠키를 처리하는 방법은 무엇입니까?
- 28. umbraco에서 쿠키를 확인하는 방법은 무엇입니까?
- 29. 특정 쿠키를 표시하는 방법은 무엇입니까?
- 30. 안드로이드에 쿠키를 확보하는 방법은 무엇입니까?
어떻게 아파치에 대한 [HttpClient를 (http://hc.apache.org/)? 나는 그것을 사용하고있다. 쿠키와 함께 잘 작동합니다. –