네이버 정복 파이썬 크롤링 (성수 월 19시)
전체 스터디
  • 전체보기
  • 질문
  • 숙제
내 스터디
  • 스터디에 참여해보세요!
다른 스터디
  • 네이버 정복 파이썬 크롤링 (성수 월 19시)
    • 전체보기
    • 질문
    • 숙제
    • 잡담
  • 파이썬 기초 스터디
  • 네이버 정복 파이썬 크롤링
  • 페이스북 만드는 웹개발
  • 데이터사이언스 12시간 입문기
  • 파이썬 구글 Sheet 연동
  • 엑셀서당 - 훈장님의 기초 엑셀 트레이닝
  • 고전게임을 만들며 배우는 코딩의 기초
  • 내 업무를 거의 자동화하는 방법
  • SQL 입문 4시간
  • QR 코드 프로그래밍
  • 비전공자 개발지식 총정리
  • 초고속 퍼포먼스 마케터
  • 왓챠 함께 만들기
  • 퍼블리셔 초고속 입문기
  • 한국형 커뮤니티 만들기
  • airbnb 프론트엔드 카피 프로젝트
  • 워드프레스로 쿠팡 만들기
클래스 일정
9월
건국대
최도근 리더
네이버 정복 파이썬 크롤링
온라인

또 다시 크롤링 질문입니다...

https://www.une-une.co.kr/outer?productListFilter=120864

이 페이지를 크롤링하고 있는데요.
section.section div.productListPage > div.shopProductWrapper div.price > span 이렇게 선택자를 지정해주면 가격 정보를 크롤링해와야하는데 파이썬이 None을 출력합니다.


웹페이지 소스를 살펴보니 실제 코드에는 가격 정보가 값이 없더라고요. 구글 개발자 도구에서는 가격 정보가 나오는데 말이죠...식스샵의 개발팀에서 뭔가 개발할 때 이런식으로 정보가 노출되도록 개발을 한 것인지 어떤지 잘 모르겠으나...이럴 때는 어떻게 가격정보를 크롤링할 수 있을까요? ㅜㅜ

자세히 보기
최도근
8월 28일 15:42

보통 그 데이터가 동적으로 출력될 때 생기는 현상입니다..! selenium을 이용해보세요. requests는 정적인 페이지(실제 코드에 가격정보가 있는 경우)에서만 사용가능합니다.

좋아요 0
    유재원
    8월 29일 12:48

    네 그럴 것 같았습니다. selenium으로 다시 해보겠습니다. 감사합니다. :)

    좋아요 0

      크롤링 관련 질문입니다.

      div.box > div.description > div.price와 같은 형태의 HTML구조에서 가격 정보를 크롤링하고 있는데요. 상품이 품절인 경우에 div.box > div.description > div.price에서 div.price는 사라지고 대신 div.soldout이 생겨서 구조가 div.box > div.description > div.soldout으로 변합니다.

      if price is None: 
       countine

      이런식으로 조건문을 써봤는데 작동하지 않네요. 이번 뿐만 아니라 이런 경우가 꽤 있어서 해결하고 싶습니다.

      질문을 요약하면 beautifulsoup의 select로 특정 class를 찾는데 실패한 경우, 해당 변수에 특정 조건을 걸어주고 싶습니다. continue한다던가 아니면 특정 string을 강제로 넣어준다던가 하고 싶습니다.

      어떻게 해야할까요?

      자세히 보기
      최도근
      8월 17일 10:38

      1. try, except를 사용해볼 수 있습니다.
      기본적으로 존재하지 않는 선택자를 검색하면 exception이 발생됩니다.

      2. price.text를 얻어내셔서 내용물을 print로 살펴보세요. 해당 text 내용물을 기준으로 if를 해보실 수 있습니다.

      if로든 try,except로든 어떻게든 상황을 걸러주어야 하고 그 후에 continue하거나 string을 강제하시면 됩니다.

      좋아요 0
        유재원
        8월 18일 01:05

        try, except로 바로 해결했습니다. :) 늘 감사드립니다!

        좋아요 0

          안녕하세요, 또 크롤링 관련 질문입니다. 질문이 많아서 죄송합니다. ㅠㅠ

          코알라코딩

          위처럼 코드가 있을때 '코알라' 텍스트는 제외하고 '코딩'만 뽑아낼 수 있는 방법이 있을까요? p태그안에 있는 택스트 중에 b태그안에 들어있는 텍스트를 제거하는 것이 목표입니다.

          자세히 보기
          최도근
          5월 8일 18:00

          p > b 를 통해 코알라는 선택할 수 있지만, 코딩만 선택하는 방법은 배운적 없죠! 선택자를 p로 하면 '코알라 코딩'이 선택될 거구요. 이럴 때는 '코알라' 부분을 삭제 해줘야 합니다. 아래 코드를 참고해주세요~! ################################## from bs4 import BeautifulSoup html = BeautifulSoup('

          코알라코딩

          ', 'html.parser') print('---------원본 html') print(html) print('---------제거하고 싶은 부분 찾기') print(html.select_one('p b')) # 맞는지 확인 html.select_one('p b').extract() # 제거 print('---------제거 후 html 코드') print(html) print(html.select_one('p').text) # 최종적으로 코딩만 출력 ################################## * 질문은 얼마든지 많이 하셔도 좋습니다

          좋아요 0
            유재원
            5월 8일 21:05

            감사합니다! 말씀주신 방식으로 해결했습니다! :)

            좋아요 1

            크롤링 관련 질문입니다. 선택자를 지정할때 혹시 엘리먼트에 선언된 스타일 속성으로 선택자를 지정하는 방법이 있을까요? 예를 들어

            코알라

            코딩

            스타일 속성을 이용해서 "코알라" 텍스트를 갖고 있는

            태그를 지정해주는 방식이 가능할까요? 가령 div.coala > p(엘리먼트에 스타일 속성이 font-size:20px이 선언된) 라고요. (물론, 예를 든 코드에서는 "코알라"를 추출하는 여러가지 방법이 있겠지만요) 답변부탁드립니다!

            자세히 보기
            이헌영
            5월 1일 15:12

            안녕하세요 :) 두가지 방법이 있을 것 같아요!! 1. 조건문 if를 이용하는 경우, p태그를 모두 수집한 후 그 중에 스타일 속성에 "font-size:20px"을 포함하고 있는 데이터만 따로 저장합니다. >> 예시 data = html.select("p") coala = list() for d in data: # 처음 선택한 태그에 해당하는 속성이 있는지 먼저 체크합니다. if "style" in d.attrs: continue # style 속성에 해당하는 값이 포함되어있는지 체크한 후 저장합니다. if "font-size:20px" in d.attrs["style"]: data1.append(d) 2. 선택자 를 이용하는 경우, 해당하는 속성 값을 포함하고 있는 태그를 선택합니다. >> 예시 coala = html.select("p[style*='font-size:20px']")

            좋아요 1
            최도근
            5월 1일 15:54

            파이썬 코드가 아니라 선택자에서 모든 것을 해결하고 싶으신건가요?! 위의 이헌영 리더님이 제시해준 1번 방법을 추천드리고, 선택자 보다 강력한 검색기능이 필요하시다면 xpath를 도입하셔야 합니다.

            좋아요 0
              유재원
              5월 2일 21:03

              헌영 님, 도근 님 답변감사합니다. 헌영 님이 답변주신 내용 적용해서 성공했습니다! YES!!! xpath도 찾아봤는데 아직 알고 싶지 않네요...늘 감사드립니다~

              좋아요 1

              저도 참여합니다! 잘 부탁드립니다!

              스터디에 참여합니다. 끝까지 열심히 하겠습니다~!

              저도 함께 하게 됐어요~ 끝까지 열심히 하겠습니다~!

              스터디 리더 최도근입니다. 잘 부탁드립니다!

              참여자 네이버 정복 파이썬 크롤링
              너무 고민말고 물어보세요!
              kakao 카카오톡 상담
              kakao 적성 테스트
              부담없이 채팅 상담하세요. 친절한 코알라가 대기중입니다:)