더북(TheBook)

마크업 태그는 파일에서 특정 부분을 찾는 데 사용하기도 한다. 예를 들어 여러분이 첫 번째 테이블 첫 번째 행에 관심이 있다고 하자. 플레인 텍스트만으로는 원하는 목적을 달성하기 어려운데, classid 속성이 부여되었다면 태그로는 가능하다.

BeautifulSoup은 태그 간 모든 상하적이고 수평적인 관계에서 일관된 접근 방식을 사용한다. 태그 간 관계는 태그 객체의 속성으로 표현하며, 파일 시스템의 상하 구조와 유사하다. soup 제목인 soup.titlesoup 객체의 속성이다. 제목에 있는 부모 엘리먼트(element)의 name 값은 soup.title.parent.name.string으로, 첫 번째 테이블 첫 번째 행 첫 번째 셀은 soup.body.table.tr.td로 표현할 수 있다.

태그 t의 이름은 t.name으로 문자열로 된 값(t.string으로 원래 내용에 접근할 수 있고 t.stripped_string을 쓰면 공백을 제거한 문자열 리스트를 반환한다)이 있다. 부모 태그는 t.parent, 다음 태그는 t.next, 바로 전 태그는 t.prev이며, 자식 태그(태그 안의 태그)는 t.children이다.

BeautifulSoup 모듈에서는 파이썬 딕셔너리 인터페이스로 HTML 태그 속성에 접근할 수 있다. 객체 t<a href="foobar.html"> 같은 하이퍼링크라면, 링크의 문자열 값은 t["href"].string이 된다. HTML 태그는 대·소문자를 구분하지 않는다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.