Crawling

Park Jae Hong·2022년 7월 20일
0

모듈화의 장점

  • 프로그램의 효율적인 관리 및 성능 향상

  • 전체적인 소프트웨어 이해의 용이성 증대 및 복잡성 감소

  • 소프트웨어 시험, 통합, 수정 시 용이성 제공

  • 기능의 분리가 가능, 인터페이스가 단순

  • 오류의 범위를 최소화

  • 모듈의 재사용 가능으로 개발과 유지보수가 용이

❗ 멀티 모듈에 대한 학습이 더 필요하다 (참고 자료)

(참고 : https://vincentgeranium.github.io/study/2019/08/26/module.html)


Crawling

Crawler 의 종류

  • Jsoup
    :HTML 파싱 Java 라이브러리입니다. DOM, CSS 및 jquery와 같은 방법을 사용하여 데이터를 추출하고 조작하는 매우 편리한 API를 제공한다.
    출처: https://jinseongsoft.tistory.com/156

  • Selenium
    : selenium은 웹사이트 테스트를 위한 도구로 브라우저 동작을 자동화할 수 있습니다. 셀레니움을 이용하는 웹크롤링 방식은 바로 이점을 적극적으로 활용하는 것입니다. 프로그래밍으로 브라우저 동작을 제어해서 마치 사람이 이용하는 것 같이 웹페이지를 요청하고 응답을 받아올 수 있습니다.
    출처 : https://hogni.tistory.com/76

  • 차이점
    : 요즘 웹사이트들은 빠른 반응성을 위하여 사용자가 컨텐츠를 서버에 요청했을 때 서버는 데이터만 브라우저에 전송하고 브라우저에서는 이 데이터를 가지고 화면을 렌더링하는 방식을 사용한다. 이러한 방식을 클라이언트 사이드 렌더링(CSR, Client-Side Rendering)이라고 하며 XHR(XML Http Request), AJAX를 이용하여 사용되다가 React.js와 같은 프레임워크들이 생겨나면서 그 영역이 점점 확대되어가고 있다. CSR은 브라우저에서 화면을 그려준다는 동적인 특성 때문에 서버에 데이터를 요청하는 HTTP Request를 사용하면 실제 화면에 그려진 데이터는 수집할 수 없다.
    즉, Jsoup은 HTTP Request를 사용하는 라이브러리이기 때문에 React를 사용하는 Twitter의 컨텐츠를 수집할 수 없는 것이며 WebDriver를 이용하는 Selenium은 수집할 수 있다.


Kotlin Crawling Issues

  1. intelliJ JSOUP 라이브러리 인식 시키기

  • 모듈을 만들기 전 단순히 build.gradle.kts 에 Jsoup을 추가한 경우 - > Error

❗ 모듈을 만들때 gradle 로 만들면 같은 플러그인을 두번할 수 없다는 에러 메세지 출력

  • Maven 으로 모듈 만들기
profile
The people who are crazy enough to think they can change the world are the ones who do. -Steve Jobs-

0개의 댓글

관련 채용 정보