JAVA
URLConnection Class(ν΄λμ€)
λ€νΈμν¬ ν΅μ μ μμ΄μ λνμ μΈ νλ‘ν μ½ μ€ νλκ° λ°λ‘
HTTP(Hyper Text Transfer Protocol)μ΄λ€.
HTTPλ, μΉμμμ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ λ
μ ν κ·μ½μ μλ―Ένλλ°, λ³΄ν΅ ν΄λΌμ΄μΈνΈμ μλ²μ κ΅¬μ‘°λ‘ μ΄λ£¨μ΄μ§λ€.
ν΄λΌμ΄μΈνΈμͺ½μλ λνμ μΌλ‘ μΉ λΈλΌμ°μ κ° μκ³
μλ²μλ μΉ μλ²κ° μλ€.
κ·Έλ°λ° λ§μ½ λ΄κ° λ§λ μλ° νλ‘κ·Έλ¨μμ
μΉμλ²μμ λ°μ΄ν°λ₯Ό λ°μμ€κ³ μΆλ€λ©΄ μ΄λ»κ² ν΄μΌν κΉ?
μ΄λ΄ λ μ¬μ©λλ ν΄λμ€κ° λ°λ‘
java.net ν¨ν€μ§ μλμ μλ ν΄λμ€λ€μ΄λ€.
μ΄λ κ² λ€μν ν΄λμ€λ€μ΄ νμ©λλλ°
λνμ μΌλ‘ Socketκ³Ό
HTTPν΅μ μ μ μ©ν URLConnection ν΄λμ€λ₯Ό μκ°νκ³ μ νλ€.
μλλ λ€νΈμν¬ νλ‘κ·Έλλ°μ μμ΄μ μλ°μλ Socketμ΄λΌλ ν΄λμ€λ§μ΄ μ‘΄μ¬νλ€.
κ·Έλ°λ° Socket ν΄λμ€λ λ°μ΄λ리 νμμΌλ‘ λ°μ΄ν°λ₯Ό μ μ‘νκ³ μμ νκΈ° λλ¬Έμ
ν μ€νΈ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ νλ‘κ·Έλ¨μ ꡬννκΈ°μλ λΆνΈνλ€.
κ·Έλμ λ±μ₯ν ν΄λμ€κ° λ°λ‘
URLConnection ν΄λμ€μ΄λ€.
URLConnection ν΄λμ€λ ν μ€νΈλ°μ΄ν°λ₯Ό μ£Όκ³ λ°κ³
HTTPν΅μ μ μ¬μ©λλ ꡬ체μ μΈ μ리λ₯Ό μ μμ§ λͺ»ν΄λ
URLμ ν΅ν΄μ μ½κ² ꡬνμ΄ κ°λ₯νλ€.
κ·Έλ°λ° URLConnection ν΄λμ€λ μ체μ μΌλ‘ μμ±μλ₯Ό ν΅ν΄μ
κ°μ²΄(μΈμ€ν΄μ€)λ₯Ό μμ±ν μ μλ€.
μλνλ©΄ μΆμν΄λμ€μ΄κΈ° λλ¬Έμ΄λ€.
κ·ΈλΌ μ΄λ»κ² κ°μ²΄λ₯Ό μμ±ν΄?
λ°λ‘ URLν΄λμ€μ λ©μλλ₯Ό ν΅ν΄μ
URLConnection ν΄λμ€μ κ°μ²΄λ₯Ό λ°μμ μ¬μ©νλ€.
μμ λ₯Ό ν΅ν΄μ μ΄λ»κ² ꡬννλμ§ μ΄ν΄λ³΄μ.
import java.net.*;
import java.io.*;
public class WebSpider {
public static void main(String[] args) {
URL url = null;
try {
url = new URL("https://www.naver.com");
} catch (MalformedURLException e) {
System.out.println("μλͺ»λ URL νμμ λλ€.");
System.exit(1);
}
FileOutputStream fos = null;
try {
URLConnection urlcon = url.openConnection();
String contentType = urlcon.getContentType();
System.out.println("Content Type : " + contentType);
InputStream in = urlcon.getInputStream();
fos = new FileOutputStream("naver.html");
byte[] buffer = new byte[512];
int readcount = 0;
System.out.println("μ½μ΄μ€κΈ° μμν©λλ€.");
while ((readcount = in.read(buffer)) != -1) {
fos.write(buffer, 0, readcount);
}
System.out.println("naver.html" + " νμΌμ λͺ¨λ μ μ₯νμ΅λλ€.");
} catch (Exception e) {
System.out.println(e);
} finally {
try {
if (fos != null)
fos.close();
} catch (Exception e2) {}
}
}
}
μμ μμ λ WebSpiderλΌκ³ ν΄μ
μΉ μλ²μͺ½μ λ¬Έμ λ°μ΄ν°λ₯Ό κΈμ΄μμ
μμ μ λ‘컬 μ₯μμ htmlνμ₯μλ‘ μ μ₯νλ νλ‘κ·Έλ¨μ΄λ€.
URLμ λ€μ΄λ²λ‘ μ§μ νκΈ° λλ¬Έμ μμ μ λ‘컬μ μ μ₯λ νμΌμ μ΄λ©΄
λΈλΌμ°μ λ₯Ό ν΅ν΄μ λ€μ΄λ²μ λ©μΈ νμ΄μ§κ° λμ¬ κ²μ΄λ€.
URLConnectionν΄λμ€κ° νμνκ² λ λ°°κ²½κ³Ό
μ΄λ»κ² νμ©νμ¬ κ΅¬ννλμ§μ λν΄μ
μμ μ ν¨κ» κ°λ¨νκ² μ 리ν΄λ΄€λ€.