파이썬 클롤링 질문드립니다.

조회수 503회

크롤링을 하고 싶어서 파이썬을 처음 만져봤는데 https://www.youtube.com/watch?v=aYdNm27HvLA 이 동영상을 따라하고 있었습니다. 슬릭딜에서 제품 검색하면 나오는 이미지, 가격, 링크의 결과들을 클롤링하는 것인데 동영상에서는 이미지 검색을 하면 검색 페이지에 이미지가 다 존재하는데 제가 지금 따라하고 있는 현재는 슬릭딜에서 검색을 진행하면 중간중간 이미지가 빈 곳이 있어서 인덱스 에러가 납니다.

이미지

이런식으로요...

코드는 현재 이미지

이런 식으로 짰습니다.

하고 싶은 결과는 검색되다가 이미지가 없으면 그냥 다음 줄로 넘어가는 것만 작동해도 좋겠습니다...

답변 부탁드립니다...

  • 코드는 스크린샷 말고 텍스트롤 작성해주세요. 편집요청빌런 2020.2.17 10:11

1 답변

  • 위 문제는 이미지 목록이 비어 있기 때문에 발생하는 문제입니다.

    다음 조건식으로 이미지 목록이 비어 있을 경우 스킵할 수 있습니다.

    if image.select("img.lazyimg") == []:
        continue
    

    해당 조건식을 적용한 전체 코드는 다음과 같습니다.

    import requests
    from bs4 import BeautifulSoup
    
    keyword = "apple ipad"
    url = "https://slickdeals.net/newsearch.php?src=SearchBarV2&q={}&searcharea=deals&searchin=first".format(keyword)
    r = requests.get(url)
    bs = BeautifulSoup(r.content, "lxml")
    divs = bs.select("div.resultRow")
    
    for d in divs:
    
        image = d.select("div.dealImg > a")[0]
    
        if image.select("img.lazyimg") == []:  # 추가된 부분
            continue
    
        rimages = image.select("img.lazyimg")[0]
        image1 = rimages.get("data-original")
        if rimages is None:
            continue
        print(image1)
    
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)