• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

결과값이 나오질 않습니다.

21.02.15 19:13 작성 조회수 79

1

import requests
from bs4 import BeautifulSoup
import re



def get_hotdeal(items):
    url ="https://slickdeals.net/newsearch.php?src=SearchBarV2&q={}".format(items)
   
    rrequests.get(url)
    bs = BeautifulSoup(r.text,"lxml")
    rows = bs.select("div.resultRow")


    results = []

    for r in rows:
        linkr.select("a.dealTitle.bp-p-dealLink.bp-c-link")[0]
        href = link.get("href")
        if href is None:
            continue
        href = "https://slickdeals.net" + href
        title = link.text

        price = r.select("span.price")[0].text.replace("$"," ").replace("from"," ").replace("off"," ").replace("each"," ").strip()
        if price.find("/") >= 0 or price == "":
            continue

        price = float(price)
        hot = len(r.select("span.icon-fire"))
        results.append((title,href,pricehot))
    return results

get_hotdeal("ipad")
#이렇게 만들었는데 터미널에 아무런 값이 반환되지 않습니다.
#리턴값을 프린트하면 값이 나오는데, 왜 함수로 하면 아무값도 나오질 않을까요?
#평소에는 껏다 키면 될때가 있었는데 껏다 켜도 안됩니다
#에러 메세지도 안떠서 어디서 잘못된건지 모르겟어요.

답변 1

답변을 작성해보세요.

0

리턴값을 프린트하면 값이 나오는데 함수로하면 아무값도 나오지 않는다는 말씀을 잘 이해하지 못하겠습니다. 어디에 나오지 않는다는 말씀이신지 모르겠습니다. 당연히 프린트를 하면 값이 화면에 출력이 될테고 프린트를 하지 않으면 화면에 아무것도 나오지 않는게 정상입니다. 

a = get_hotdeal("ipad")

위처럼 a 라는 변수에 저장하면 메모리상에는 a 라는 변수에 결과값이 기록되어 있을테고

get_hotdeal("ipad")

위처럼 함수를 실행했을때는 그냥 실행만하고 다른 동작은 하지 않습니다.

a = get_hotdeal("ipad")

print(a)

혹은

print(get_hotdeal("ipad"))

함수로 수행한 결과를 출력하려면 위처럼 수정하시면 될듯 합니다.