inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

직접 작성해보며 익숙해지기: 크롤링 기본 연습문제 풀기 (업데이트)

섹션 4 마지막 강의 5분 40초 질문드립니다.

315

jdo5640

작성한 질문수 10

0

# 내 코드

import requests

from bs4 import BeautifulSoup

res = requests.get('https://davelee-fun.github.io/index.html')

soup = BeautifulSoup(res.content,'html.parser')

mydata = soup.find_all('a','nav-link') 

for i in mydata:

print(i.get_text())

 

저는 코드를 이렇게 작성해봤는데요 결과적으로 Blog와 About이 잘 나왔습니다. (저는 find_all 함수 사용했습니다.)

그런데 mydata = soup.find_all('a','nav-link') 이 문장에서 굵게 표시된 부분을 a.nav-link로 적으면 아무것도 출력이 안되는데 왜 안되는지 궁금합니다. 태그명.class명 이렇게 하는 방법은 css selector에서만 허용되는 걸까요?

코드 그대로 select일 때는 가능합니다.

python 웹-크롤링

답변 1

0

잔재미코딩 DaveLee

안녕하세요. 답변도우미입니다.

네, 맞습니다. 'a.nav-link'와 같은 CSS 선택자 방식의 표현은 BeautifulSoup의 select 메서드와 함께 사용됩니다. 이는 select 메서드가 CSS 선택자를 지원하기 때문입니다.

반면에, find_all 메서드는 태그 이름과 속성을 별도의 인자로 받습니다. 따라서 find_all('a', 'nav-link')와 같이 사용하여 'a' 태그 중에서 'nav-link'라는 클래스를 가진 태그를 찾을 수 있습니다.

다시 말해, 'a.nav-link'와 같은 표현은 CSS 선택자이므로 select 메서드와 함께 사용되어야 합니다. 이는 BeautifulSoup의 설계 방식에 따른 것으로, find_allselect가 서로 다른 방식으로 웹 페이지의 요소를 찾는다고 이해하면 됩니다.

따라서, find_all('a', 'nav-link')로 코드를 작성하신 것은 올바릅니다. 이렇게 하면 'a' 태그 중에서 'nav-link' 클래스를 가진 모든 태그를 찾아내는 것이 가능합니다.

감사합니다.

33강 9:51 excercise55.

0

25

1

섹션2 - 32강 연습문제 48번 질문

0

31

0

주피터 노트북 사용법 강의 관련

0

32

1

exercise 20. 데이터 구조(리스트)

0

33

0

65강 소리

0

37

1

섹션 5 CSS selector사용해서 클로링하기2의 커리큘럼 일정 부재?

0

49

2

크롤링, 영상을 따라해도 제미나에게 물어봐도 안되요

0

54

1

정규표현식 및 여러 코드 꼭 외워야 하나요?

0

60

1

리스트 함수형도 정수 데이터 받을 수 있나요?

0

61

1

크롤링 관련 질문

0

75

1

문제 답이 없는 버전은 없나요?

0

90

1

requests, BeautifulSoup 임포트 부분에 대해 문의드립니다.

0

97

1

업데이트 강의

0

121

2

선생님 강의중에서 sqlite3 강의를 제공한 강의가 있나요?

0

148

2

연습용 예제 파일

0

89

1

lxml 관련 오류

0

118

1

SAVE Request 창 띄우는 법

0

106

1

포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다. 2

0

91

1

포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다.

0

117

1

예제 2, 4, 6에 대한 풀이 방식 질문.

0

108

1

문제 파일

0

94

1

pdf 파일 내 코드 복붙시 공백

0

317

1

데이터 저장 강좌 문의 건

0

108

1

" " 와 ' '의 차이를 알고 싶습니다

0

271

1