Commit 558b1436 authored by Lee SeoYeon's avatar Lee SeoYeon
Browse files

.

parents 3695b9ca 9168132d
......@@ -24,44 +24,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 md={9} className='mr-6'>
<Navbar bg="#fff" variant="light">
<Nav className="mr-auto">
{user ? <Nav.Link onClick={() => handleLogout()}>로그아웃</Nav.Link>
: (
<>
<Nav.Link href="/signup">회원가입</Nav.Link>
<Nav.Link href="/login">로그인</Nav.Link>
</>
)}
</Nav>
</Navbar>
</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>
);
}
......
......@@ -18,7 +18,6 @@ function Place(props) {
getReview();
}, [])
return (
<Modal {...props}
size="xl"
......
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'
import axios from 'axios';
const Iconv = iconv.Iconv
const signup = async (req, res) => {
res.send("안녕하세요")
}
const search = async (req, res) => {
const url = "https://www.google.com/search?q=" + encodeURI(req.params.search) + "+site%3Atistory.com" + '&page_no=1'
request(url)
.then(anyToUtf8)
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) {
const review = await Review.findOne({ link: $(this).find('a').attr('href') })
places[i] = {
title: $(this).find('h3').text(),
link: $(this).find('a').attr('href'),
summary: $(this).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(),
}
})
// 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(places)
res.send(places)
console.log(reviews)
res.send(reviews)
})
function anyToUtf8(str) {
const { encoding } = jschardet.detect(str);
console.log("source encoding = " + encoding);
const iconv = new Iconv(encoding, "utf-8//translit//ignore");
const { encoding } = jschardet.detect(str); // 웹페이지 문서의 인코딩 타입을 확인
const iconv = new Iconv(encoding, "utf-8//translit//ignore"); // euc-kr 인코딩변환
return iconv.convert(str).toString();
}
// try {
......@@ -48,6 +54,5 @@ const search = async (req, res) => {
// }
}
const
export default { signup, search }
\ No newline at end of file
export default { search }
\ No newline at end of file
......@@ -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