파이썬으로 웹 크롤링하는걸 연습중인데 잘 모르는부분이 있습니다

조회수 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 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    질문 재정리

    1. 웹페이지에서 태그랑 클래스 잘 찾는법
    2. soup.find : 태그랑 클래스로 밖에 못찾는지
    3. soup.find_all : 4번째꺼 찾기

    답변

    1. 웹페이지에서 태그랑 클래스 잘 찾는법

      일반적으로 구글 크롬에서 [F12]를 눌러서 개발자 도구창을 연 다음, Control+F 키나 혹은 [찾기]로 해당 태크나 클래스를 찾으시면 편합니다. [구글 개발자 도구]를 검색하시면 학습 자료가 많습니다.

    2. soup.find : 태그랑 클래스로 밖에 못찾는지

      find 는 원하는 태그를 찾는 것입니다. 태그는 이름(name), 속성(attribute), 속성값(value)로 구성되어 있으므로 find로 [이름, 속성, 속성값]을 특정하여 해당 태그를 찾을 수 있습니다. 여기서 클래스는 속성의 한 종류일 뿐입니다.

    3. soup.find_all : 4번째꺼 찾기

      find_all은 해당 태그를 모두 불러와서 list 형태로 만듭니다. 만약 결과를 myList 변수에 저장했다면, 4번째 꺼는 list의 4번째꺼를 꺼내듯이 myList[3] 이런 식으로 쓰시면 됩니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)