CORE
HOME > JAVA > J2SE > CORE
2019.01.13 / 22:21

[MIXI] Httpclient¸¦ ÀÌ¿ëÇÏ¿©, ·Î±×ÀΠó¸®Çϱâ.(JAVA)

hanulbit
Ãßõ ¼ö 272
·Î±×ÀΠ󸮿¡ ÀÖ¾î ½ºÆ®¸®¹Ö ¹æ½ÄÀÌ ¸ÔÈ÷Áö ¾Ê´Â (Æ®À§ÅÍ´Â µÇ´Âµ¥!!!!) ÆäÀ̽ººÏ, ¹Í½Ã(Mixi.jp)¿Í °°Àº »çÀÌÆ®¸¦
¿ø°ÝÀ¸·Î ÀÌ¿ëÇÏ°í ½Í¾úÁö¸¸, ¹æ¹ýÀ» ãÀ» ¼ö ¾ø¾î¼­ ¾î¿ ¼ö ¾øÀÌ À§Á¬ Çü½ÄÀÇ ¿ÀÇ ¼Ò¼ÈÀ» ÆÄ°íµé´ø µµÁß,
ÀÚÄ«¸£Å¸ÀÇ httpclient¸¦ ÀÌ¿ëÇÏ¿© ·Î±×ÀΠó¸® ¹× ³»ºÎ ÇÔ¼ö¸¦ ÀÌ¿ë ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» Æ÷·³ÀÇ ÇÑ À¯Àú·ÎºÎÅÍ
µµ¿òÀ» ¹ÞÀ» ¼ö ÀÖ¾ú´Ù.

ÀÌ·²¶§, ¿µ¾î¸¦ °øºÎÇÑ °Í¿¡ ´ëÇÑ º¸¶÷À» »õ»ï½º·´°Ô ´À³¢°Ô µÈ´Ù.-_-;;;

¾÷¹«ÀÇ ÀÏȯÀ¸·Î ¹Í½ÃÂÊÀ» ÁßÁ¡ÀûÀ¸·Î ÆÄ°íµé¾î¾ß ÇÏÁö¸¸, Ȥ¿©, µ¿ÀÏÇÑ ¹æ½ÄÀÇ Ä¿¹Â´ÏƼ³ª »çÀÌÆ®¸¦ ÀÌ¿ëÇÏ°í ½Í¾ú´ø À̵éÀ» À§ÇØ
°£´ÜÇÑ ¼Ò½º¸¦ ÷ºÎÇÑ´Ù. Á¶±ÝÀ̳ª¸¶ µµ¿òÀÌ µÇ±â¸¦ ¹Ù¶ó¸ç...

HTTPCLIENT¸¦ ¾òÀ» ¼ö ÀÖ´Â °÷Àº ÀÌÂÊÀÌ´Ù. http://hc.apache.org/httpcomponents-client/index.html
°¢Á¾ Æ©Å丮¾ó°ú ¿¹Á¦¿ë ¼Ò½º°¡ ÀÖÀ¸¹Ç·Î, Çѹø °¡º±°Ô µÑ·¯º¸¸é »ç¿ë¹ýÀ̳ª ÀÀ¿ëÀ» Çϴµ¥´Â ¾î·Á¿òÀÌ ¾øÀ» °ÍÀ¸·Î º¸ÀδÙ.

ÀÏ´Ü, ¼Ò½ºÀÇ È帧À» °£´ÜÈ÷ ¼³¸íÇÏÀÚ¸é.
±âÁ¸ÀÇ À¥ ½ºÅ©·¹ÇÎ(Web Scraping)°ú °°Àº ¹æ½ÄÀ¸·Î ·Î±×ÀÎ ÆûÀÌ Á¸ÀçÇÏ´Â ÆäÀÌÁö¸¦ È£ÃâÇÑ´Ù.
·Î±×Àο¡ ÇÊ¿äÇÑ Æû¿¡(±âº»ÀûÀ¸·Î ¾ÆÀ̵ð /Æнº¿öµå) Á¤º¸¸¦ ÀÔ·Â ÈÄ, Æ÷½ºÆ® ¾×¼ÇÀ» ÁÖ¾î ¸¶Ä¡, À¥À» ÅëÇÑ ·Î±×ÀÎ ¾×¼Ç°ú °°Àº È¿°ú¸¦ ÁØ´Ù.
ÀÌÈÄ, ·Î±×ÀÎÀÌ ÀÌ·ç¾îÁø ÈÄ, ·Î±×ÀÎ ½Ã¿¡¸¸ À̵¿ °¡´ÉÇÑ ÆäÀÌÁö¸¦ ºÒ·¯µéÀÏ ¼ö ÀÖ°Ô µÈ´Ù.

ÀÌÇÏ´Â °£·«ÇÏ°Ô ±â´ÉÀ» ±¸ÇöÇÑ ¼Ò½ºÀÌ´Ù.

 package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;

public class Mixi{
 public static void main(String[] args) {
     HttpClient client = new HttpClient();
     String mixiLogin = "http://mixi.jp/login.pl";     //·Î±×ÀÎ ÆûÀÌ Á¸ÀçÇÏ´Â ¸ÞÀÎ ÆäÀÌÁö
     String mixiTopPage = "http://mixi.jp/home.pl";  //À̵¿ÇÒ ÆäÀÌÁö.
     String encode = "EUC-JP";  //ÀÎÄÚµù ¹æ½Ä. Çѱ¹ÀÇ °æ¿ì ´ëºÎºÐ UTF-8¶Ç´Â EUC-KR¹æ½ÄÀ» »ç¿ëÇÑ´Ù.
     String inputUserName = "email";         //ID FORM
     String inputPassword = "password";   //PW FORM
     String inputNextUrl = "next_url";
     String userName = "account@xxxxx.xxx ";  //ID
     String password = "xxxxxxxx";  //PW
     String nextUrl = "/home.pl";

     PostMethod postMethod = new PostMethod(mixiLogin);
     postMethod.addParameter(inputUserName, userName);
     postMethod.addParameter(inputPassword, password);
     postMethod.addParameter(inputNextUrl, nextUrl);
     postMethod.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

     try {
         int statusCode = client.executeMethod(postMethod);
         System.out.println(statusCode);
         postMethod.releaseConnection();
         if (statusCode == 200) {
             GetMethod getMethod = new GetMethod(mixiTopPage);
             statusCode = client.executeMethod(getMethod);
             if (statusCode == 200) {
                 BufferedReader br = new BufferedReader(
                         new InputStreamReader(getMethod
                                 .getResponseBodyAsStream(), encode));
                 String line;
                 while ((line = br.readLine()) != null) {
                     System.out.println(line);
                 }
             }
             getMethod.releaseConnection();
         }
     } catch (HttpException e) {
         e.printStackTrace();
     } catch (IOException e) {
         e.printStackTrace();
     }
  }
}


º¹ÀâÇÏ°Ô ¼³¸íÇÏ´Â °Í º¸´Ù, ¸ð¸£´Â ºÎºÐÀº Á÷Á¢ º¹»çÇؼ­ °Ë»öÇØ º¸´Â °ÍÀÌ °øºÎ°¡ µÉ °ÍÀ̶ó°í »ý°¢Çϱ⿡,
Ÿ »çÀÌÆ®¿¡ Àû¿ë ½Ã ÇÊ¿äÇÑ ºÎºÐ¸¸ ÁÖ¼®À» ´Þ¾Æ ³õ¾Ò´Ù.

¹é°ßÀ̺ҿ©ÀÏŸ(ÛÝ̸ڤÜôåýìéöè)¶ó´Â ¸»µµ ÀÖÁö ¾ÊÀº°¡. ÇÁ·Î±×·¡¸Ó´Â ÄÚµùÇÑ ¶óÀÎÀÇ ¼ö ¸¸Å­ ¼ºÀåÇÑ´Ù°í ÇÑ´Ù.

¹°·Ð, À§ÀÇ ¼Ò½º´Â ¹ÝÂëÀº ÇϵåÄÚµù¿¡ °¡±î¿ïÁöµµ ¸ð¸¥´Ù. ÀÌ°ÍÀú°Í »¹ÁþÇϸ鼭 ¸¸µç °ÍÀÌ´Ù º¸´Ï, ¾²·¹±âÄÚµå(«´«ß«³ー«É)°¡
¼¯¿©ÀÖÀ» °¡´É ¼º ¿ª½Ã ¹èÁ¦ÇÒ ¼ö ¾ø´Ù.  »ç½Ç ³²ÀÇ ¼Ò½º¸¦ ±×´ë·Î º£²¸¼­ »ç¿ëÇÏ´Â °Í º¸´Ù´Â Äڵ带 Ç®¾î¼­ ³» ¼Ò½º·Î ¸¸µå´Â°Ô
°¡Àå Áñ°Å¿î ¼ø°£ÀÌ ¾Æ´Ò±î ÇÑ´Ù.

-------------------------------------------------------------------------
Eclipse 3.4.2
JDK 6
HttpClient 4.0 (GA)
-------------------------------------------------------------------------

PS. 󸮼ӵµ´Â PERLÀÌ °¡Àå ºü¸£´Ù°í ÇÑ´Ù. ÀÌÈÄ Àû¿ë µÉ Á¤±Ô½ÄÀÇ Àû¿ëµî¿¡¼­µµ JAVA´Â ¿ª½Ã ó¸® ¼Óµµ¸é¿¡¼­
¾î´ÀÁ¤µµ ÇÚµðĸÀ» ¾È°í °¡¾ß ÇÏ´Â °Í °°´Ù.  °Á PERL·Î »õ·Î ¸¸µé±î...OTL