ChatGPT의 도움으로 작성된 크롤러 프로그램은 현재 인터넷 기술 블로그의 내용을 기반으로 현재 기술 동향을 분석할 수 있습니다.
주요 기능:
크롤러 프로그램의 대상 기술 블로그 웹사이트를 정의하고, 크롤링해야 할 페이지와 추출해야 할 정보를 결정합니다. 이 정보에는 논문 제목, 저자, 출판 날짜, 초록, 내용 등이 포함될 수 있습니다.
OkHttp3 프레임워크를 사용하여 웹 페이지의 HTML 코드를 얻기 위한 HTTP 요청을 시작합니다. 웹사이트에 의해 차단되는 것을 방지하려면 User-Agent 및 지연 시간과 같은 적절한 매개변수를 설정해야 합니다. 요청 수가 많은 경우 차단을 방지하기 위해 프록시 IP 및 기타 전략을 사용하는 것을 고려할 수 있습니다.
Jsoup 프레임워크를 사용하여 HTML 코드를 구문 분석하고 필요한 정보를 추출합니다. 선택기를 사용하여 필수 요소를 찾고, API를 사용하여 요소의 속성과 텍스트 콘텐츠를 얻을 수 있습니다. 일부 웹사이트에서는 특정 상황에 따라 처리해야 하는 인증 코드 설정, 페이지 동적으로 생성 등과 같은 크롤러 방지 기술을 사용할 수 있다는 점에 유의해야 합니다.
Mybatis Plus 프레임워크를 사용하여 데이터베이스에 데이터를 저장합니다. 먼저 데이터 테이블의 구조와 엔터티 클래스를 정의한 후 프레임워크에서 제공하는 API를 사용하여 데이터를 추가, 삭제, 수정 및 쿼리해야 합니다. 중복 저장을 방지하려면 기본 키나 고유 인덱스와 같은 메커니즘을 사용하여 데이터 중복을 제거하는 것을 고려할 수 있습니다.
예약된 작업을 사용하여 정기적으로 크롤러 프로그램을 실행하여 적시에 데이터를 업데이트할 수 있습니다. 대상 웹사이트에 지나치게 빈번하게 접속하여 웹사이트 이상이 발생하는 것을 방지하기 위해서는 적절한 실행 빈도와 시간을 설정해야 합니다.
흥미로운 순간이 왔습니다 . ChatGPT가 소스 코드를 생성하도록 하세요. 우리가 AI에 제공하는 정보에는 프로젝트 이름 ai-crawler, Java 버전 1.8, 종속성: mybatis-plus-boot-starter, okhttp, hutool-all, jsoup가 포함됩니다. AI는 어떤 종류의 코드를 생성합니까 ?
글쎄요, okhttp와 jsoup를 기반으로 두 개의 도구 클래스를 만드는 방법을 알고 있어서 꽤 만족스럽습니다.
다음으로, 또 다른 힌트를 주고 현재 가칭 Blog라고 하는 특정 데이터 모델을 AI에게 알려주고 AI가 특정 추가, 삭제, 수정 및 쿼리 코드를 생성하도록 합니다.
그의 활약을 살펴보자:
나쁘지는 않습니다. 생성된 Blog 엔터티 클래스는 MybatisPlus의 @TableName 주석을 사용합니다. BlogService는 MybatisPlus의 IService에서 상속됩니다. Spring의 @Service 주석도 의식적으로 사용됩니다.
이 코드는 주니어 Java 엔지니어보다 나쁘지 않습니까 ?
위의 기본 로직 코드 외에도 구성 클래스와 구성 파일을 살펴보겠습니다.
AI가 프로그래머를 대체할 것인가? 미래에는 그럴 수도 있지만 지금은 아닐 수도 있습니다. 저는 AI가 편리한 도구에 가깝다고 생각합니다.