From d08afbf904b89b6adad6066f8e72b24179f38491 Mon Sep 17 00:00:00 2001 From: Chae Rin Date: Mon, 18 Jan 2021 13:42:53 +0900 Subject: [PATCH] =?UTF-8?q?reviews=EB=8B=B4=EA=B8=B0=20=EC=99=84=EB=A3=8C+?= =?UTF-8?q?=20=EB=B8=94=EB=A1=9C=EA=B7=B8=EB=B3=84=20=EB=82=B4=EC=9A=A9=20?= =?UTF-8?q?=EB=B3=B4=EC=99=84=20=ED=95=84=EC=9A=94=ED=95=A8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/controllers/review.controller.js | 32 +++++++++++++++---------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/server/controllers/review.controller.js b/server/controllers/review.controller.js index 41d16ca..2e1fa1c 100644 --- a/server/controllers/review.controller.js +++ b/server/controllers/review.controller.js @@ -8,26 +8,33 @@ import { nextTick } from 'process'; const Iconv = iconv.Iconv const search = async (req, res, next) => { - // const url = "https://www.google.com/search?q=" + encodeURI(req.params.search) + "+site%3Atistory.com&page_no=1" try { - const url = "https://www.google.com/search?q=kakao+site%3Atistory.com&page_no=1" let reviews = [] + let content = [] + const url = "https://www.google.com/search?q=" + encodeURI(req.params.search) + "+site%3Atistory.com&page_no=1" const response1 = await axios.get(url) + // console.log(response1.data) const $1 = cheerio.load(response1.data); $1('.kCrYT').each(async function (i) { - const searchParams = new URLSearchParams($1(this).find('a').attr('href')); const title = $1(this).find('h3').text() + const searchParams = new URLSearchParams($1(this).find('a').attr('href')); const link = searchParams.get("/url?q") const summary = $1(this).find('.s3v9rd').find('.s3v9rd').text() - const content = await getReview(link) + content.push(getReview(title, link, summary)) if (title) { - reviews[i] = { title: title, link: link, content: content } + reviews[i] = { title: title, link: link } } else if (summary) { reviews[i - 1] = { ...reviews[i - 1], summary: summary } reviews = reviews.filter(e => e) } - // const review = new Review(reviews).save() }) + const promiseReview = await Promise.all(content) + reviews.forEach((review, i) => { + review["content"] = promiseReview[i] + }) + // reviews = { ...reviews, ...promiseReview } + console.log("reviews", reviews) + // console.log(promiseReview) res.send(reviews) } catch (error) { console.log(error) @@ -35,14 +42,15 @@ const search = async (req, res, next) => { } } -const getReview = async (link) => { +const getReview = async (title, link, summary) => { let content = '없음' - const res = await axios.get(link) - const $2 = cheerio.load(res.data); - if ($2('.tt_article_useless_p_margin').text()) { - content = $2('.tt_article_useless_p_margin').text() + if (link) { + const res = await axios.get(link) + const $2 = cheerio.load(res.data); + if ($2('.tt_article_useless_p_margin').text()) { + content = $2('.tt_article_useless_p_margin').text() + } } - // console.log(content,"getReiview") return content } -- GitLab