반응형
반응형
이번 글에서는 객체지향 프로그래밍 원칙을 활용한 PHP 웹 크롤러 코드를 분석해보겠습니다. 이 코드는 여러 웹사이트(뽐뿌, 클리앙)에서 인기글을 수집하는 크롤러를 구현하고 있으며, 다양한 디자인 패턴을 활용해 확장성 있는 구조를 갖추고 있습니다.주요 구성요소1. 인터페이스 정의 (CrawlerInterface)interface CrawlerInterface { public function crawl(); public function getSiteName();}모든 크롤러가 구현해야 할 기본 인터페이스를 정의하고 있습니다. 각 크롤러는 반드시 crawl() 메소드와 getSiteName() 메소드를 구현해야 합니다.2. 추상 클래스 (AbstractCrawler)abstract class Abs..
socket 연결을 위한 소켓 서버 + 소켓 클라이언트를 php 로 간단히 만들어 보도록 하겠습니다. 1. socket Server (25003 포트를 사용한다.)
디자인 패턴의 템플릿 메소드 패턴에 대해 알아보려고 합니다. 크롤링을 주로 작업하면서 한개의 크롤러를 만들어 사용하다 여러가지 문제로 인해 여러개의 크롤러를 사용하기로 합니다. 이전까지는 curl 만 이용했지만 아래와 같이 curl 이외의 크롤러를 사용하기 위해 템플릿 메소드를 사용하기로 합니다. curl casperjs puppeteer 등등 다이어그램은 아래와 같습니다. ParseCurl 객체 ParsePuppeteer 객체 또는 다른 크롤러 추가시 OCP 를 만족하도록 추가만 해주면 됩니다. 다이어그램은 봤으니 프로그램을 살펴보도록 하겠습니다. 먼저 호스트 코드를 먼저 살펴보도록 하겠습니다. example.php
easyOCR 을 이용하여 한글을 추출해 보도록 하겠습니다. 결과 화면 보시고 분석하도록 할께요. OCR 분석중 OCR 결과 OCR 해석하기 위한 프로그램 순서는 아래와 같습니다. 첨부파일 업로드 업로드된 첨부파일로 easyOCR 분석 분석완료된 결과 출력 해당 프로그램은 php 로 파일업로드 기능을 수행한 뒤 파이썬을 이용하여 OCR 분석한다. index.php OCR 분성중.... 1분이상.... 오래걸림 fileUpload.php php_py_exec.php
먼저 다음 HTML 입력 파일 필드를 웹사이트에 추가합니다. 이 아래에 하나의 분할 태그를 생성해야 하며 이 태그 아래에 유효성 검사 오류를 표시하거나 이미지 파일을 업로드합니다. 웹사이트에 출력을 위한 파일 태그와 하나의 분할 태그를 추가한 후, 다음으로 로컬 컴퓨터에서 파일을 선택했을 때 트리거될 입력 파일 태그에 이벤트 리스너를 추가하려고 합니다. const sample_image = document.getElementsByName('sample_image')[0]; sample_image.addEventListener('change', () => { upload_image(sample_image.files[0]); }); 파일 선택 시 이벤트 리스너를 추가한 후 upload_image() 함수를 ..
제목 그대로 아래와 같이 php 에서 파이썬 파일을 호출한다. 하지만 아래와 같은 오류가 계속 발생 Traceback (most recent call last): File "/home/naya/easyOCR-binary-centos-main/tests/php_client.py", line 38, in print(result) UnicodeEncodeError: 'ascii' codec can't encode characters in position 60-62: ordinal not in range(128) 해결 사용할 인코딩을 파이썬에게 알려랴 한다. 일반적으로 터미널 로케일에서 가져오지만 exec 사용시 로케일이 없고 기본 인코딩 ansi 사용되어 PYTHONIOENCODING=utf-8 환경변수를 설..