• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

패턴으로 실습하며 익히기: HTML/CSS 이해를 바탕으로 크롤링하기 9분47초 질문드립니다.

23.07.23 04:46 작성 조회수 194

0

화면 캡처 2023-07-23 043904.png섹션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() 함수를 사용할 수 있습니다.

감사합니다.