Post List

2017년 7월 23일 일요일

[Python 2.7] 파이썬으로 url 접속하기 (python2.7 버전)

c 언어를 이용해 웹 접근을 하려면 소켓 프로그래밍부터 공부해야한다. 소켓이란 프로그램이 네트워크를 통해 데이터를 주고받는 도구라고 볼 수 있다. 이 소켓을 이용해 HTTP 프로토콜을 구현하고 html 문서를 받는 코드까지 모두 짜려면 머리가 아플 것이다.

그래서 웹기반 모듈(c 언어에선 라이브러리와 같은 의미)이 잘 형성 되어 있는 파이썬을 이용하는 것이 효율적이다. 파이썬은 쉬운 언어에 속하므로 c언어나 다른 언어를 할 줄 알면 금방 습득할 수 있으니 웹 접근을 하고 싶으면 파이썬을 적극 추천한다.

먼저 https://www.python.org/downloads/ 이 링크를 타고 python-2.7.13을 받아봅시다.
받은 뒤 시작메뉴/python2.7/IDLE (Python GUI)을 실행시키자.


그 뒤에 File/New File 을 눌러 파이썬 코드를 작성하는 파일을 만든다.

한번 원하는 페이지의 html 파일을 받는 코드를 붙여 넣어 봅시다.
1
2
3
4
5
6
7
import urllib2
url = 'https://www.google.co.kr/'
request = urllib2.Request(url)
data = urllib2.urlopen(request).read()
print data
cs
위를 실행하면(키보드의 F5를 누르면 됩니다) GUI 창에서 코드가 실행되고 해당 html문이 짜르륵 출력된다.
아무리 봐도 코드가 정말 간단하다.

하나씩 봅시다.
1. urllib2란 url을 다루는 함수들을 모아둔 모듈이다. 이 모듈을 사용하려면 위와 같이 
import urllib2라고 작성하면된다.
2. url 변수에 원하는 사이트의 url 문자열을 입력 후
3. urllib2 모듈 내에 정의된 Request함수를 실행. 이때 반환 값을 request에 저장!
4. 여기서 urllib2의 urlopen 함수를 사용하면 해당 url에 접속하여 서버에서 제공하는 데이터를 받을 수 있다. 이 데이터를 읽으려면 read 함수가 필요함
6. data를 출력!!!


그러나 출력문이 매우길고 가독성이 힘들다...
따라서 파일로 저장 후 웹브라우저로 보는 것이 좋으므로 파일 저장 코드를 추가해보자.

1
2
3
= open("response.html","w")
f.write(str(data))
f.close()
cs

1. 파이썬에 내장된 open 함수를 통해 respone.html 파일을 write 모드로 연다.(파일이 없으면 자동 생성됨)
2. f에다 받아온 html문이 저장된 data를 write 함수를 통해 적는다.
3. 다 적었으면 write 모드를 끝낸다.


간단한 코드로 web에 접근 하는 방법을 봤다. 다음엔 이를 좀 더 활용해 크롤러를 만들어 봅시다!!

댓글 없음:

댓글 쓰기