본문 바로가기

PYTHON 공부 - PY4E

PY4E - Chapter 12 Unicode and UTF-8 in Python (3)

 

구글, 웹 스크래


1. 웹스크리핑은 웹으로부터 링크를 추출하고 추출한 링크들을 차례로 처리하는 작업
2. 수집된 데이터는 다양한 용도로 사용이 가능하다.

3. 다만 모든 웹사이트가 로봇에 의해서 스크래핑을 당하고 싶은 것은 아니다.
4. 몇몇 웹사이트는 로그인을 하게 하여, 기록을 남게 하기도 하며, 계정을 닫아버리기도 한다.

5. 로그인을 안하더라도, 주소를 닫아버릴 수도 있다.

 

구글, HTML

 

6. HTML 파싱은 어렵다.

7. 실제 웹에는 깨진 HTML이 많다.

8. 뷰티풀수프(BeautifulSoup)는 한마디로, 웹에서 일어날 수 있는 다양한 문제들에 대한 해결책을 모아 놓은 것이다.

9. 사용하기 매우 쉽다.

10. HTML 주면 태그 줄게!

 

구글, BeautifulSoup

 

 

11. 그냥 주소 건내주면, 받아온 HTML 문서 상에서 잘못된 부분이 있나 확인한다.

12. 불완전한 부분이 있나 확인하고 고쳐서 돌려준다.

 

 

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

# Ignore SSL certificate errors #이부분은 인증서를 무시하는 부분인데, 지금 이해할 필요는 없다고 한다.
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

url = input('Enter - ') # url을 입력하면
html = urllib.request.urlopen(url, context=ctx).read() # 그 url을 열고 get하여 html 매개변수에 넣어주고
soup = BeautifulSoup(html, 'html.parser') 뷰티풀 숩은 html을 받아서 확인하고 돌려주며

# Retrieve all of the anchor tags 
tags = soup('a') # 태그가 a가 담긴 라인을 돌려주며
for tag in tags: # 태그에 대한 반복문을 시행한다.
    print(tag.get('href', None)) # 태그 awnd 속성값이 href인 곳을 출력한다.