파이썬 질문드리고 싶습니다

파이썬 질문드리고 싶습니다

QA

파이썬 질문드리고 싶습니다

본문

#노트북제품명찾기

import requests
from bs4 import BeautifulSoup


def laptop():
    url = "https://search.shopping.naver.com/search/all.nhn?origQuery=%EA%B2%8C%EC%9D%B4%EB%B0%8D%EB%85%B8%ED%8A%B8%EB%B6%81&pagingIndex=1&pagingSize=40&productSet=model&viewType=list&sort=rel&frm=NVSHPRC&query=%EA%B2%8C%EC%9D%B4%EB%B0%8D%EB%85%B8%ED%8A%B8%EB%B6%81"
    html = requests.get(url).text

    soup = BeautifulSoup(html, "html.parser")
    tags = soup.find_all("li", {"class": "ad _model_list _itemSection"})

    for idx, tag in enumerate(tags):
        if tags.find("1050") == True:
            print(idx, tags)
        else:
            print("원하시는 제품이 없습니다.")


laptop()

구현하고자 하는 것은 크롤링을 통해 모은 데이터 중에서 원하는 데이터가 있는 URL만 추출하는 것 인데요, 


import requests
from bs4 import BeautifulSoup


def laptopspec():
    url = "https://search.shopping.naver.com/search/all.nhn?origQuery=%EA%B2%8C%EC%9D%B4%EB%B0%8D%EB%85%B8%ED%8A%B8%EB%B6%81&pagingIndex=1&pagingSize=40&productSet=model&viewType=list&sort=rel&frm=NVSHPRC&query=%EA%B2%8C%EC%9D%B4%EB%B0%8D%EB%85%B8%ED%8A%B8%EB%B6%81"
    html = requests.get(url).text

    soup = BeautifulSoup(html, "html.parser")
    tags = soup.find_all("li", {"class": "ad _model_list _itemSection"})

    for idx, tag in enumerate(tags):
        print(idx, tags)


laptopspec()
 

크롤링까지는 했는데 그 이후에 원하는 정보가 있는 부분의 URL을 뽑아낼 방법을 모르고 있습니다...

수고스러우시겠지만 답변해 주신다면 정말 감사드립니다ㅠㅠ

 

 

 

이 질문에 댓글 쓰기 :

답변 2


import requests
from bs4 import BeautifulSoup
 
def laptopspec():
    url = "https://search.shopping.naver.com/search/all.nhn?origQuery=%EA%B2%8C%EC%9D%B4%EB%B0%8D%EB%85%B8%ED%8A%B8%EB%B6%81&pagingIndex=1&pagingSize=40&productSet=model&viewType=list&sort=rel&frm=NVSHPRC&query=%EA%B2%8C%EC%9D%B4%EB%B0%8D%EB%85%B8%ED%8A%B8%EB%B6%81"
    html = requests.get(url).text
 
    soup = BeautifulSoup(html, "html.parser")
    tags = soup.find_all("li", {"class": "ad _model_list _itemSection"})
 
    for tag in tags:
        print(tag.select_one('div.info a').text.strip())
        print(tag.select_one('span.price em').text)
        print(tag.select_one('div.img_area a')['href'])
 
laptopspec()

 

안녕하세요?

정확히 어떤 데이터를 크롤링하길 원하시는지 제가 알 수 없지만

이런 식으로 하면 제품명, 최저가, URL을 뽑을 수 있어요 ^^

 

그런데 ad _model_list _itemSection으로 class를 한정하여 find_all을 하면

현재 제가 확인하기로는 최상단 2개 제품(광고) 밖에 크롤링이 되지 않네요.

의도하신 부분인지는 모르겠네요~

 

그럼 감기 조심하시고 좋은 주말 되세요~!

 

1890256330_1544254524.0357.png

답변을 작성하시기 전에 로그인 해주세요.
전체 88
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT