파이썬으로 웹 크롤링하는걸 연습중인데 잘 모르는부분이 있습니다
조회수 803회
beautifulsoup을 사용해서 연습중이고 웹페이지에서 태그랑 클래스 잘 찾는법이 궁금하고 soup.find를 써서 내가 원하는걸 찾을때 태그랑 클래스로 밖에 못찾는지 궁금합니다.
그리고 soup.find_all 해서 한 태그에서 정보가 여러개 나왔을때 4번째꺼를 내가 얻고자한다면 어떻게해야되나요? 제가 원하는게 4번째꺼에 있는데 그것만 특정하려고 해도 find를 제대로 쓸줄 몰라서요. 태그랑 클래스로 특정했는데 여러개가 나왔습니다.
제가 작성중인 코드입니다
import requests
from bs4 import BeautifulSoup
url ="https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=%EC%86%8D%EC%B4%88%EB%82%A0%EC%94%A8"
res = requests.get(url)
res.raise_for_status()
soup = BeautifulSoup(res.text, "lxml")
temperture = soup.find_all("div", attrs={"class":"todaytemp"})
dust = soup.find_all("span", attrs={"class","num"})
print(dust)
1 답변
-
질문 재정리
- 웹페이지에서 태그랑 클래스 잘 찾는법
- soup.find : 태그랑 클래스로 밖에 못찾는지
- soup.find_all : 4번째꺼 찾기
답변
웹페이지에서 태그랑 클래스 잘 찾는법
일반적으로 구글 크롬에서 [F12]를 눌러서 개발자 도구창을 연 다음, Control+F 키나 혹은 [찾기]로 해당 태크나 클래스를 찾으시면 편합니다. [구글 개발자 도구]를 검색하시면 학습 자료가 많습니다.
soup.find : 태그랑 클래스로 밖에 못찾는지
find 는 원하는 태그를 찾는 것입니다. 태그는 이름(name), 속성(attribute), 속성값(value)로 구성되어 있으므로 find로 [이름, 속성, 속성값]을 특정하여 해당 태그를 찾을 수 있습니다. 여기서 클래스는 속성의 한 종류일 뿐입니다.
soup.find_all : 4번째꺼 찾기
find_all은 해당 태그를 모두 불러와서 list 형태로 만듭니다. 만약 결과를
myList
변수에 저장했다면, 4번째 꺼는 list의 4번째꺼를 꺼내듯이myList[3]
이런 식으로 쓰시면 됩니다.
댓글 입력