import requestsr = requests.get('https://developer.github.com/v3',auth=('user','pass'))# HTTP GET Requestprint(r.status_code)# 실행 결과print(r.headers['content-type'])# HTTP Header 가져오기print(r.encoding)# HTML 소스 가져오기print(r.text)print(r.json())
BeautifulSoup을 이용하여 위의 Requests 예제에서 가져온 html에서 title과 header에 포함된 Anchor를 추출하는 코드를 만들어 보겠습니다.
먼저 실습할 코드를 살펴보겠습니다.
위의 코드를 분석해 보겠습니다.
4행에서는 HTTP GET Request 를 사용해서 HTML 소스를 가져 왔습니다. 7행에서 BeautifulSoup으로 html소스를 python객체로 변환하였습니다. BeautifulSoup 에서 첫번째 인수는 html 소스코드를 두번째 인수는 어떤 Parser를 이용할지 표시합니다. 이 코드에서는 Python내장 html.parser를 이용했습니다.
8행에서는 find함수를 사용하여 HTML의 title을 출력하였습니다.
BeautifulSoup을 사용하여 html 문서에서 원하는 부분을 선택할 때에는 find와 select를 사용 할수 있습니다. select는 만족하는 여러 인스턴스를 찾고, find는 첫 번째 인스턴스를 반환합니다.
find('찾고자 하는 정보') , select('찾고자 하는 정보') 와 같이 사용하면 됩니다. '찾고자 하는 정보'를 표현 할 때에 '태그명', '.클래스명', '상위태그명 > 하위 태그명', '#아이디명' 등과 같이 사용 할 수 있습니다.
10행은 'div' 태그 다음 'a' 태그를 모두 선택 하라는 것입니다.
11행~13행은 select한 내용을 출력 하는 것입니다. 위의 코드를 실행하면 다음과 같이 표시 됩니다.