Commit 4223171e authored by baesangjune's avatar baesangjune
Browse files

Merge remote-tracking branch 'origin/cherry' into Sangjune

parents 380f73b7 9168132d
......@@ -19,7 +19,6 @@ function Place(props) {
getReview();
}, [])
return (
<Modal {...props}
size="xl"
......
......@@ -22,31 +22,30 @@ function App() {
setState(true);
}
return (
<Container className="vh-100">
<Row className="d-flex justify-content-md-center">
<Col md={6} className="mt-5">
<Image src={ohuh} fluid />
</Col>
<Col lg={{ span: 10, offset: 1 }} >
<InputGroup size="lg" lg={6} xs={4} fluid>
<FormControl
className="d-flex justify-content-lg-center"
<Container className="vh-100 d-flex justify-content-md-center align-items-center">
<Col md={6} lassName=" d-flex justify-content-center">
<Row style={{marginBottom:20}}>
<Image src={ohuh} />
</Row>
<Row style={{marginBottom:500}}>
<Form className="vw-100" onSubmit={handleSubmit}>
<InputGroup>
<Form.Control
size="lg"
placeholder="검색어를 입력하세요."
aria-label="Large"
aria-describedby="inputGroup-sizing-sm"
onChange={handleChange}
/>
<InputGroup.Append>
<Button variant="outline-secondary" onClick={handleSubmit}>검색</Button>
<Button type='submit' variant="outline-secondary">검색</Button>
</InputGroup.Append>
</InputGroup>
</Col>
</Form>
</Row>
</Col>
</Container>
);
}
......
import Review from '../models/Review.js'
import cheerio from "cheerio";
import express from 'express';
import request from 'request-promise'
import jschardet from 'jschardet'
// import iconv from 'iconv'
import fs from 'fs'
// const Iconv = iconv.Iconv
const signup = async (req, res) => {
res.send("안녕하세요")
}
import axios from 'axios';
const Iconv = iconv.Iconv
const search = async (req, res) => {
// console.log(req.params.search)
// console.log("req", req)
const url = "https://www.google.com/search?q=%ED%95%9C%EB%9D%BC%EC%82%B0%20site%3Atistory.com&oq=tistory&aqs=chrome..69i57j0l4j69i60l3.1746j0j4&sourceid=chrome&ie=UTF-8&ved=2ahUKEwis_bSFz4buAhWVdXAKHU0tBaoQ2wF6BAgIEAE&ei=T1D1X-yZD5XrwQPN2pTQCg"
// const url=
request(url)
const url = "https://www.google.com/search?q=" + encodeURI(req.params.search) + "+site%3Atistory.com&page_no=1"
const editUrl = /(http(s)?:\/\/)([a-z0-9\w]+\.*)+[a-z0-9]{2,4}/gi
axios.get(url)
// .then(anyToUtf8)
.then((html) => {
// fs.writeFileSync("googlez.txt", '\ufeff' + html, { encoding: 'utf8' });
let $ = cheerio.load(html, null, false);
let places = []
$('.kCrYT').each(function (i) {
places[i] = {
title: $(this).find('h3').text(),
link: $(this).find('a').attr('href'),
summary: $(this).find('.s3v9rd').find('.s3v9rd').text(),
let $1 = cheerio.load(html.data);
let reviews = []
$1('.kCrYT').each(function (i) {
let link = ""
if ($1(this).find('a').attr('href')) {
link = ($1(this).find('a').attr('href')).match(editUrl)
}
reviews[i] = {
title: $1(this).find('h3').text(),
link: link,
summary: $1(this).find('.s3v9rd').text(),
}
})
console.log("places***********************************************",places)
res.send(places)
})
// function anyToUtf8(str) {
// const { encoding } = jschardet.detect(str);
// console.log("source encoding = " + encoding);
// const iconv = new Iconv(encoding, "utf-8//translit//ignore");
// return iconv.convert(str).toString();
// }
// reviews.forEach((review, i) => {
// axios.get(review.link)
// .then((html) => {
// let $2 = cheerio.load(html.data);
// $2('').each(function(i){
// review.content($2(this).find(''.text()))
// })
// })
// })
console.log(reviews)
res.send(reviews)
})
function anyToUtf8(str) {
const { encoding } = jschardet.detect(str); // 웹페이지 문서의 인코딩 타입을 확인
const iconv = new Iconv(encoding, "utf-8//translit//ignore"); // euc-kr 인코딩변환
return iconv.convert(str).toString();
}
// try {
// const newPlace = await new Place({
// name: req.params.search,
......@@ -51,4 +54,5 @@ const search = async (req, res) => {
// }
}
export default { signup, search }
export default { search }
......@@ -4,7 +4,6 @@ import review from '../controllers/review.controller.js'
const router = express.Router()
router.route('/api/review/:search')
.post(review.signup)
.get(review.search)
export default router
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment