연습 문제 6번 find 이용 질문
116
投稿した質問数 1
css select대신 find 함수를 사용해서 이런 식으로 작성했더니, 같은 결과가 나오긴 했지만 너무 비효율적인거 같아서 질문드립니다. 더 깔끔하게 find를 사용해서 가져오는 방법이 있을까요?
from bs4 import BeautifulSoup
import requests
url="https://davelee-fun.github.io/"
res=requests.get(url)
soup=BeautifulSoup(res.content,"html.parser")
all=soup.find("div", "text-center")
items=all.find("span")
ls=[]
for item in items :
ls.append(item.get_text().strip())
print(ls[1]+" "+ls[2]+" "+ls[3])
回答 2
0
data = soup.find('div', class_='text-center')
print(data.get_text().strip())
로도 바로 가져올 순 있었어요
0
안녕하세요, 인프런 AI 인턴입니다. 황재완님.
find 함수를 이용한 크롤링 코드에 대해 질문해주셨는데요, 현재 사용하신 코드도 원하는 결과를 출력하는 데 문제는 없지만 더 효율적이고 깔끔한 방법으로 코드를 개선할 수 있습니다.
기본적으로 find는 특정 태그의 첫 번째 매칭 요소를 반환하고, find_all은 모든 매칭 요소를 리스트로 반환합니다. 이런 기능을 활용하면, 문자열을 하나하나 추가하지 않고도 원하는 데이터를 쉽게 가져올 수 있습니다. 아래와 같은 방법을 통해 코드의 효율성을 높일 수 있습니다:
from bs4 import BeautifulSoup
import requests
url = "https://davelee-fun.github.io/"
res = requests.get(url)
soup = BeautifulSoup(res.content, "html.parser")
# 전체 div 태그 중 'text-center' 클래스를 가진 첫 번째 요소 선택
text_center_div = soup.find("div", class_="text-center")
# 해당 div 내부의 모든 span 태그 선택
span_items = text_center_div.find_all("span")
# 각 span 태그의 텍스트를 리스트로 저장
ls = [item.get_text().strip() for item in span_items]
# 리스트에서 필요한 정보 출력
print(" ".join(ls[1:4]))
위의 코드에서는 find_all과 리스트 컴프리헨션을 사용하여 깔끔하게 원하는 내용을 추출하고, join을 사용해 문자열을 합쳤습니다. 이 방법은 가독성을 높이고 추후 유지보수가 용이한 코드를 작성하는 데에 유용합니다.
비슷한 내용의 질문과 답변을 찾을 수 있는 링크는 다음과 같습니다:
위 링크에서는 select와 find 사용에 대한 이해도를 높이는 다양한 논의를 다루고 있으니 참고해보시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
크롤링, 영상을 따라해도 제미나에게 물어봐도 안되요
0
33
1
정규표현식 및 여러 코드 꼭 외워야 하나요?
0
40
1
리스트 함수형도 정수 데이터 받을 수 있나요?
0
46
1
크롤링 관련 질문
0
64
1
문제 답이 없는 버전은 없나요?
0
74
1
requests, BeautifulSoup 임포트 부분에 대해 문의드립니다.
0
83
1
업데이트 강의
0
98
2
선생님 강의중에서 sqlite3 강의를 제공한 강의가 있나요?
0
123
2
연습용 예제 파일
0
76
1
lxml 관련 오류
0
106
1
SAVE Request 창 띄우는 법
0
92
1
포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다. 2
0
75
1
포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다.
0
98
1
예제 2, 4, 6에 대한 풀이 방식 질문.
0
89
1
문제 파일
0
78
1
pdf 파일 내 코드 복붙시 공백
0
291
1
데이터 저장 강좌 문의 건
0
95
1
" " 와 ' '의 차이를 알고 싶습니다
0
243
1
Exercise 22. 문자열 다루기 (strip)
0
132
1
list함수로 리스트 선언하면 실패하는데 이유는 무엇입니까?
0
187
1
셀 삽입후 바로 기입이 가능합니까?
0
139
2
주피터 노트북 마우스 스크롤? 오류
0
1550
2
등호 2개('==')의 의미가 뭐죠?
0
460
2
페이지가 넘어갈 때 url 변하지 않는 경우
0
267
1

