Showing
1 changed file
with
12 additions
and
9 deletions
... | @@ -24,7 +24,10 @@ func GetItemByKeyword(keyword string) ([]model.Item, error) { | ... | @@ -24,7 +24,10 @@ func GetItemByKeyword(keyword string) ([]model.Item, error) { |
24 | var items []model.Item | 24 | var items []model.Item |
25 | wg := sync.WaitGroup{} | 25 | wg := sync.WaitGroup{} |
26 | 26 | ||
27 | - itemsInfo := getItemsInfoByKeyword(keyword) | 27 | + itemsInfo, err := getItemsInfoByKeyword(keyword) |
28 | + if err != nil { | ||
29 | + return nil, err | ||
30 | + } | ||
28 | 31 | ||
29 | for _, itemInfo := range itemsInfo { | 32 | for _, itemInfo := range itemsInfo { |
30 | itemUrl := itemInfo.Link | 33 | itemUrl := itemInfo.Link |
... | @@ -34,7 +37,7 @@ func GetItemByKeyword(keyword string) ([]model.Item, error) { | ... | @@ -34,7 +37,7 @@ func GetItemByKeyword(keyword string) ([]model.Item, error) { |
34 | wg.Add(1) | 37 | wg.Add(1) |
35 | go func(itemUrl string) { | 38 | go func(itemUrl string) { |
36 | defer wg.Done() | 39 | defer wg.Done() |
37 | - err, item := crawlingNaverCafe(itemUrl) | 40 | + item, err := crawlingNaverCafe(itemUrl) |
38 | if err != nil { | 41 | if err != nil { |
39 | log.Fatal(err) | 42 | log.Fatal(err) |
40 | } | 43 | } |
... | @@ -46,13 +49,13 @@ func GetItemByKeyword(keyword string) ([]model.Item, error) { | ... | @@ -46,13 +49,13 @@ func GetItemByKeyword(keyword string) ([]model.Item, error) { |
46 | return items, nil | 49 | return items, nil |
47 | } | 50 | } |
48 | 51 | ||
49 | -func getItemsInfoByKeyword(keyword string) []model.ApiResponseItem { | 52 | +func getItemsInfoByKeyword(keyword string) ([]model.ApiResponseItem, error) { |
50 | encText := url.QueryEscape("중고나라 " + keyword + " 판매중") | 53 | encText := url.QueryEscape("중고나라 " + keyword + " 판매중") |
51 | apiUrl := "https://openapi.naver.com/v1/search/cafearticle.json?query=" + encText + "&sort=sim" | 54 | apiUrl := "https://openapi.naver.com/v1/search/cafearticle.json?query=" + encText + "&sort=sim" |
52 | 55 | ||
53 | req, err := http.NewRequest("GET", apiUrl, nil) | 56 | req, err := http.NewRequest("GET", apiUrl, nil) |
54 | if err != nil { | 57 | if err != nil { |
55 | - log.Fatal(err) | 58 | + return nil, err |
56 | } | 59 | } |
57 | req.Header.Add("X-Naver-Client-Id", config.Cfg.Secret.CLIENTID) | 60 | req.Header.Add("X-Naver-Client-Id", config.Cfg.Secret.CLIENTID) |
58 | req.Header.Add("X-Naver-Client-Secret", config.Cfg.Secret.CLIENTSECRET) | 61 | req.Header.Add("X-Naver-Client-Secret", config.Cfg.Secret.CLIENTSECRET) |
... | @@ -60,7 +63,7 @@ func getItemsInfoByKeyword(keyword string) []model.ApiResponseItem { | ... | @@ -60,7 +63,7 @@ func getItemsInfoByKeyword(keyword string) []model.ApiResponseItem { |
60 | client := &http.Client{} | 63 | client := &http.Client{} |
61 | resp, err := client.Do(req) | 64 | resp, err := client.Do(req) |
62 | if err != nil { | 65 | if err != nil { |
63 | - log.Fatal(err) | 66 | + return nil, err |
64 | } | 67 | } |
65 | defer func(Body io.ReadCloser) { | 68 | defer func(Body io.ReadCloser) { |
66 | err := Body.Close() | 69 | err := Body.Close() |
... | @@ -75,16 +78,16 @@ func getItemsInfoByKeyword(keyword string) []model.ApiResponseItem { | ... | @@ -75,16 +78,16 @@ func getItemsInfoByKeyword(keyword string) []model.ApiResponseItem { |
75 | if err != nil { | 78 | if err != nil { |
76 | log.Fatal(err) | 79 | log.Fatal(err) |
77 | } | 80 | } |
78 | - return apiResponse.Items | 81 | + return apiResponse.Items, nil |
79 | } | 82 | } |
80 | 83 | ||
81 | -func crawlingNaverCafe(cafeUrl string) (error, *model.Item) { | 84 | +func crawlingNaverCafe(cafeUrl string) (*model.Item, error) { |
82 | frame := rod.New().MustConnect().MustPage(cafeUrl).MustElement("iframe#cafe_main") | 85 | frame := rod.New().MustConnect().MustPage(cafeUrl).MustElement("iframe#cafe_main") |
83 | time.Sleep(time.Second * 2) | 86 | time.Sleep(time.Second * 2) |
84 | source := frame.MustFrame().MustHTML() | 87 | source := frame.MustFrame().MustHTML() |
85 | html, err := goquery.NewDocumentFromReader(bytes.NewReader([]byte(source))) | 88 | html, err := goquery.NewDocumentFromReader(bytes.NewReader([]byte(source))) |
86 | if err != nil { | 89 | if err != nil { |
87 | - return err, nil | 90 | + return nil, err |
88 | } | 91 | } |
89 | 92 | ||
90 | title := html.Find("h3.title_text").Text() | 93 | title := html.Find("h3.title_text").Text() |
... | @@ -108,7 +111,7 @@ func crawlingNaverCafe(cafeUrl string) (error, *model.Item) { | ... | @@ -108,7 +111,7 @@ func crawlingNaverCafe(cafeUrl string) (error, *model.Item) { |
108 | } | 111 | } |
109 | fmt.Println("crawling " + cafeUrl + " title: " + title) | 112 | fmt.Println("crawling " + cafeUrl + " title: " + title) |
110 | 113 | ||
111 | - return nil, &item | 114 | + return &item, nil |
112 | } | 115 | } |
113 | 116 | ||
114 | func priceStringToInt(priceString string) int { | 117 | func priceStringToInt(priceString string) int { | ... | ... |
-
Please register or login to post a comment