inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

직접 작성해보며 익숙해지기: 크롤링 기본 연습문제 풀기 (업데이트) 4/5번 질문입니다

431

gwakseungjae

작성한 질문수 5

0

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

예제 사이트 크롤링연습 4/5번문제 질문입니다.

select_one을 사용하지 않고,

import requests

from bs4 import BeautifulSoup

url = 'https://davelee-fun.github.io/'

res = requests.get(url)

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

box = soup.select('section.recent-posts')

items = box[0].select('h4.card-text')

for item in items:

print(item.get_text().strip())

이런 식으로 select를 사용해서 분리하면 안되는건가요? 원소가 하나인 리스트가 되는걸로 이해해서 [0]을 사용하고 그 후에 h4.card=text를 사용하면 출력은 똑같이 되는데, 차후 크롤링 할때 이렇게 이해하면 문제가 있을까요?

python 웹-크롤링

답변 1

0

잔재미코딩 DaveLee

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

우선 사용하신 코드는 크롤링 결과를 올바르게 출력하는 데에는 문제가 없습니다. 일반적으로 select_one 메서드는 해당하는 요소 중에서 첫 번째 요소만 선택하고 반환하는 반면, select 메서드는 모든 요소를 선택하고 리스트로 반환합니다. select 메서드를 사용하여 원소가 하나인 리스트를 얻은 뒤에 [0]을 사용하여 첫 번째 요소를 선택하는 것이 가능합니다. 그래서, 요소가 하나이든, 여러개이든 select 로 가져와도 크게 문제가 안되고요. 그래서 저도 특별한 경우 아니면, select 로 모두 크롤링 코드를 작성합니다.

다만, 보다 가독성을 고려한다면 select_one 메서드를 사용하는 것이 말씀하신 코드에서는 더 명확하지 않을까 생각은 들어요. 이것은 사실상 개인별 코드 작성 선호의 문제라서, 편하신대로 쓰셔도 됩니다. 즉, box = soup.select('section.recent-posts') 대신 box = soup.select_one('section.recent-posts')를 사용하여 첫 번째 section.recent-posts 요소를 선택하는 것이 더 바람직합니다. 이후에 items = box.select('h4.card-text')로 선택된 요소들을 가져올 수 있습니다. 이렇게 코드를 작성하면, 추후에 크롤링을 할 때 혼동을 줄일 수 있으며, 코드의 의도를 더 명확하게 전달할 수 있습니다.

감사합니다.

65강 소리

0

19

1

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

0

18

2

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

0

38

1

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

0

44

1

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

0

50

1

크롤링 관련 질문

0

69

1

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

0

78

1

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

0

87

1

업데이트 강의

0

103

2

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

0

128

2

연습용 예제 파일

0

79

1

lxml 관련 오류

0

110

1

SAVE Request 창 띄우는 법

0

96

1

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

0

80

1

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

0

102

1

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

0

93

1

문제 파일

0

83

1

pdf 파일 내 코드 복붙시 공백

0

296

1

데이터 저장 강좌 문의 건

0

100

1

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

0

246

1

Exercise 22. 문자열 다루기 (strip)

0

138

1

list함수로 리스트 선언하면 실패하는데 이유는 무엇입니까?

0

193

1

셀 삽입후 바로 기입이 가능합니까?

0

143

2

주피터 노트북 마우스 스크롤? 오류

0

1554

2