Dolphins의 HelloWorld

urllib 와 Beautiful soup 본문

python/python 심화

urllib 와 Beautiful soup

돌핀's 2018. 7. 13. 14:54

urllib -> 연결 만들기, GET요청 전송, 새로운 줄 전송, 데이터 받기 등등을 모두 처리


먼저 라이브러리를 import 해주어야한다.


import urllib.request, urllib.parse, urllib.error


그리고 아래 코드와 같이 홈페이지 주소를 넣고 명령어를 입력하면


그 홈페이지의 내용이 출력되는 모습을 볼 수 있다.


import urllib.request, urllib.parse, urllib.error

handle = urllib.request.urlopen('http://www.daum.net')
for line in handle:
    print(line.decode().strip())



그리고 이렇게 얻은 정보에서 우리가 흔히 사용하는 dictionary를 통해 문자열을 처리하는


코드를 사용하면 어떤 단어가 몇번 나왔는지에 대한 정보도 얻을 수 있다. 


예를들어서 다음과 같이 코드를 작성하는 것이다.


import urllib.request, urllib.parse, urllib.error

handle = urllib.request.urlopen('http://dolphins-it.tistory.com/13?category=771381')
counts = dict()
for line in handle:
    words = line.decode().split()
    for word in words:
        counts[word] = counts.get(word,0) + 1
print(counts)


위에 있는 코드를 직접 실행해 보았다면 알겠지만 웹 페이지 문서를 출력하도록 하면


<a> 나 <href>와 같은 html문법까지 모두 출력되는 것을 알 수 있다.


html을 쉽게 다루기 위해 사용할 수 있는것이 Beautiful Soup이다.


Beautiful Soup는 웹페이지에서 일어나는 다양한 문제들에 대한 해결책을 제시한다.


https://cryptosan.github.io/pythondocuments/documents/beautifulsoup4/


위의 사이트를 통해 beautiful Soup의 정보와 사용 방법을 확인할 수 있다.


사용법을 확인해 보면서 실험해본 코드이다.


import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup

html = urllib.request.urlopen('http://www.uos.ac.kr/main.do').read()
soup = BeautifulSoup(html)

#print(soup.prettify()) #보기좋은 html 문서로 출력

#텍스트만 뽑아보자.
#print(soup.get_text())

# 태그에 존재하는 모든 URL을 뽑아보자.

for link in soup.find_all('a'):
    print(link.get('href'))



'python > python 심화' 카테고리의 다른 글

lambda, map reduce  (0) 2018.07.10
Enumerate,Zip  (0) 2018.07.10
Split, Join, List comprehensions  (0) 2018.07.10
Python의 문자표현  (0) 2018.07.09
Comments