파이썬 크롤링 라이브러리로 크게 BeautifulSoup4, requests, , selenium, scrapy 등이 있다. [ BeautifulSoup4 ] BeautifulSoup4는 파이썬 내장 모듈인 requests, urllib를 이용해 HTML 을 받아오고 beautifulSoup로 추출한다. 장점 쉽고, 빠르고(병렬 처리시), 간단하다. 단점 HTML을 받아오기 때문에 SPA (ex. vue.js에서 라우팅 기능을 사용하여 페이지를 하나만 유지시키는 것)이나 js가 적용된 페이지를 크롤링하기엔 어렵다. [ lxml ] 기본적으로 BeautifulSoup에서는 BeautifulSoup(html, 'html.parser') 와 같이 html parser 를 사용할수도 있지만 lxml 모듈을 설치..
[ 크롤링, 스크래핑, 파싱의 차이 ] [ 웹 크롤링 ] 크롤러라는 봇이 존재하며, 조직적, 자동화된 방법으로 www 을 탐색하는 프로그램이며, 여러 인터넷 사이트를 수집 후 분류하고 분류 한 데이터를 저장한 뒤 인덱싱하는 작업을 말한다. [ 웹 스크래핑 ] 웹 크롤러로 페이지의 정보를 얻고 구역별로 HTML의 태그의 정보로 데이터를 추출하는 것을 의미하며 크롤링은 웹 스크래핑의 방법 중 하나이다. [ 파싱 ] 어떠한 웹 페이지에 대해 내가 원하는 데이터를 특정패턴, 순서로 추출하여 정보로 가공한다. [ 결론 ] 크롤링은 여러 웹페이지를 탐색하고 스크래핑을 통해 특정 페이지의 정보를 추출 후 파싱하여 우리가 원하는 데이터 형태로 가공한다. [ 웹 스크래핑의 한계 ] 웹 페이지가 수정될 경우 스크래핑이 중..
vue에서 구현한 front 영역을 build 했다. build.gradle plugins { id 'org.springframework.boot' version '2.7.3' id 'io.spring.dependency-management' version '1.0.13.RELEASE' id "com.github.node-gradle.node" version "3.1.0" id 'java' } * 생략 * node { version = '16.17.0' npmVersion = '8.15.0' workDir = file("frontend") npmWorkDir = file("frontend") nodeModulesDir = file("frontend") } 스프링에서 npm 관련 설정을 해주었다. 뷰 프레..
[ 프로젝트 ] 사람이 인지하지 못한 화재에 대응하는 서비스입니다. 원리:화재 감지 센서와 AI 기술을 이용하여, 화재 발생시 자동으로 주변 소방서에 알림을 전송합니다. 빠른 대응으로 더 큰 화재 피해 방지 사람이 인지하지 못한 화재 대응 가능 빈 집 화재 대응 가능 [ Spring ] [ Controller ] 1. MemberController @Slf4j @Controller public class MemberController { @Autowired private FirestationService firestationService; @GetMapping({"", "/"}) public String index () { return "index.html"; } @GetMapping("/user/reg..
권한이 제데로 설정되지 않은건가라는 물음에서 세션이 제데로 설정되어있는지 확인하였다. 오류 해결 @Override protected void configure(HttpSecurity http) throws Exception { http .httpBasic().disable() .csrf().disable() .cors().configurationSource(corsConfigurationSource()) .and() // .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .authorizeRequests() .antMatchers("/", "/auth/**", "/css/**", "/js/**").permitAll() ..
화면을 통해 소방서 정보를 등록하면 DB 속에는 잘 들어가는 것을 확인할 수 있다. 오류 vue 서버에서는 성공이라고 뜨지만 Spring Security에 걸려 이런 화면으로 넘어간다 [Vue.js] methods: { submitForm3: function() { const url = 'http://localhost:7777/auth/loginProc' const data = { firestationname: this.firestationname, firestationPw: this.firestationPw } axios.post(url, data) .then(function(response) { console.log(response) alert('성공') // window.location.href =..
build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' } 스프링 시큐리티 Configuration Class를 작성하기 위해 WebSecurityConfigurerAdaper 를 상송하여 configure 을 override 한다. @Configuration @RequiredArgsConstructor @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled = true) public class SecurityConfig extends WebSecurityConfigurerAdapter { } @EnableWebSecurity W..
#틀릴 수 있음 build.gradle dependencies { implementation 'org.projectlombok:lombok' } Dependencies에 lombok을 추가했다. Lombok을 사용하면 Getter, Setter을 구현하기 편리하다는 장점이 있지만 내부 수정이 필요한 경우 불편할 수 있다. Lombok @NoArgsConstructor Class의 기본 생성자 자동 추가 @AllArgsConstructor Class의 모든 필드 값을 받는 생성자 추가, Bean을 주입받는 방식으로도 쓰인다. @Data @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode 추가 @Builder 모델 객체 생성시 ..