🤔 웹 크롤링 시 어떤 함수와 문법이 어떻게 쓰이는지 헷갈려서 하는 정리!
용어 정리
HTML, XML, JSON 등 파일 구문을 분석하는 모듈
soup = BeautifulSoup(open("index.html"), "html.parse")
- 관례적으로 soup라는 객체를 사용함
- index.html 파일을 열고, 그것을 html로 분석하라는 의미
- "html.parser"를 굳이 명시 안하면 자동으로 "html.parser"로 설정됨
- open함수, "html.parser" 모두 파이썬 내장임
파이썬에서 http 요청(서버 쪽에 정보를 가져오기 위해 보내는 것)을 보낼 수 있는 모듈
url = "https://www.naver.com"
result = requests.get(url)
result.text #이게 html 부분
url을 다루기 위한 모듈, HTTP, FTP, SMTP와 같은 프로토콜을 사용하여 URL을 열고 읽고 쓰는 기능 제공
HTTP : 웹 상에서 다양한 리소스를 전송하기 위한 프로토콜
FTP : 컴퓨터 간에 파일을 송수신하기 위해 사용, 파일 전송을 쉽게 할 수 있음
SMTP : 이메일 클라이언트와 메일 서버 간의 통신에 사용하여 메세지 전달
urllib.request
다양한 방식으로 URL을 열고 데이터를 가져온다.
urlopen() : URL을 열어서 httpResopnse 객체를 반환하는 함수. 이 객체는 read() 메서드를 사용해서 응답 본문을 가져올 수 있다.
import urllib.request
response = urllib.request.urlopen('http://www.naver.com')
html = response.read()
urlretrieve('다운로드 url', '저장 파일 경로') : UR에서 파일을 다운로드해 로컬 파일로 저장하는 함수이다.
import urllib.request
url = 'http://www.naver.com/image.jpg'
filename = 'image.jpg'
urllib.request.urlretrieve(url, filename)
urllib.parse
URL 분석하기 위한 함수들을 정의
string : string, bytes 형식으로 특수문자가 포함된 문자열 삽입
safe : URL encoding에서 제외할(변환하지 않을) 문자 삽입 (default = /)
encoding : 인코딩 방식 지정 (default = 'utf-8')
error : 인코딩 에러를 처리하는 방식 지정 (default = 'strict)
대응하는 디코딩 : urllib.parse.unquote(string, encoding='utf-8', errors='replace')