본문 바로가기

언어/python&웹 크롤링

[python&웹 크롤링] 7. urllib을 활용한 필요 데이터 추출하기(2)

이전시간에 urlretrive, urlopen 메서드를 통해서 링크를 통해 데이터를 로컬에 저장할 수 있었다.

이번시간은

1. urlopen 파라미터 전달방법

2. type(자료형)

3. decode, geturl, status, getheaders, info, urlparse 메서드에 대해 알아보겠다.

 

먼저, 이전에 생성했던 폴더에 파이썬 파일을 생성하자 (download2-3-1.py)

 

download2-3-1.py

다음 코드를 입력해보고 실행시켜서 결과를 확인해보자.

아래는 코드 출력결과에 따른 설명이다.

11 :  request의 urlopen 메서드를 통해 url을 mem 변수에 저장함

13 : <http.client.HTTPResponse object at 0x000002C0D4311198> 라는 결과가 나오는데 urlopen 한 결과가 어떠한 메모리 공간에 저장되었음을 뜻한다.

14 : <class 'http.client.HTTPResponse'> mem 변수의 타입은 http.client.HTTPResponse 임을 알수있다.

15~17 : 파이썬에는 3가지 중요한 타입이 있는데 dictionary, list, tuple이다. 자바의 배열,리스트,맵과 비슷한 개념이니 검색 후 세개의 차이점을 비교해보자.

20 : geturl 메서드를 통해 mem 변수에 실제 url 경로를 확인할 수 있다.

21 : mem.status 값은 200(성공)이 나온다. 해당 url은 유효하다는것을 알수있다.

22 : getheaders 메서드를 통해 url로 전송될 헤더값을 확인 가능하다.

29 : read를 통해 데이터를 긁어오는데, 50바이트만 긁어왔고, urf-8로 decode 시켰다. 

30 : urlparse 는 urllib 라이브러리의 parse 메서드로부터 임포트 한 메서드인데, 파라미터로 전달받은 url을 분리시켜 정보를 나눈것이다.  "?" 이후로 시작되는 부분은 query로 분류됨을 출력을 통해 확인할 수 있다.

 

download2-3-2.py

 

(download2-3-2.py 파일을 생성한 후 다음 실습을 진행하겠다)

www.ipify.org/

위 링크를 클릭하여 들어가면 링크 요청으로 본인의 ip 값을 리턴받을 수 있다.

형식에 맞게 요청을 보내고 본인 아이피를 리턴받음을 확인할 수 있는 실습을 진행해보자.

 

10 : API 변수에 주소를 넣는다. 

12 : values 변수에(dictionary) format(키), json(값) 을 넣어두자

15 : values 값은 {'format': 'json'} 임을 확읺할 수 있다.

17 : urllib의 parse 메서드로부터 임포트한 urlencode에 values 값을 넣어 형식을 format=json으로 맞춘다

21 : 기존 주소에 파싱된 url을 파라미터로 넣어 전송시킬 코드를 완성시킨다.

24 : urlopen을 통해 전송할 url을 읽고 utf-8로 decode시킨 결과 원하는 ip값을 받아오는 것을 확인할 수 있다.

 

download2-3-2.py

www.mois.go.kr/frt/bbs/type013/commonSelectBoardList.do?bbsId=BBSMSTR_000000000006

위 주소는 행정안전부의 알립니다 탭인데, 여기서 rss 주소를 제공하여 확인할 수 있다.

그 주소가 10번째 줄에 있고,  파라미터를 던져 여러 게시판에서 제공하는 rss 코드를 가져온것을 확인할 수 있다.


Today :
Yesterday :
Total :