작성
·
259
0
섹션3 마지막강의의 9분 47초 내용입니다.
위 사진은 제가 소스 코드를 땄을 때 사진이고 저는 div tag에 class가 두개가 아닌 하나로 나타나있습니다. 왜 같은 링크인데 소스코드가 달라진지 모르겠습니다.
그리고 저렇게 속성이 여러개일때는 find함수 안에 ('div',attrs={'class':'layer_body' , 'data-translation':'true'})라고 작성하면 될까요?
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)
- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다
- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
답변 1
0
안녕하세요. 답변 도우미입니다.
소스가 어떤 것인지가 잘 모르겠긴 한데요. 우선 말씀하신 부분은 맞습니다. BeautifulSoup에서 find
함수를 사용하여 특정 태그를 찾을 때는 해당 태그의 속성을 딕셔너리 형태로 제공하면 됩니다. 꼭 모두 작성해야 하는 것은 아니고요. 해당 태그를 유니크하게 선택할 수 있다면, 여러 조건 중 하나만 넣어도 충분합니다.
예를 들어, <div class="layer_body" data-translation="true">
태그를 찾기 위해서는 다음과 같이 작성하면 됩니다:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_code, 'html.parser')
target_div = soup.find('div', attrs={'class':'layer_body', 'data-translation':'true'})
위 코드에서 html_code
는 크롤링 대상 웹페이지의 HTML 코드입니다. soup.find()
함수는 첫 번째 매칭되는 태그를 반환합니다. 만약 매칭되는 모든 태그를 찾고 싶다면 soup.find_all()
함수를 사용할 수 있습니다.
감사합니다.