프로젝트 일지/BMT16 6. Go를 이용한 스크래퍼 리팩토링하기 (2) - goquery, Goroutine, sync.WaitGroup 저번 글에서는 왜 Go를 이용해 코드를 리팩토링하게 되었는지 그 계기와 함께 리팩토링한 코드 중 '역 코드 스크래퍼'의 HandleRequest 함수에 대해서 살짝 알아보았다. 이번 포스트에서는 '역 코드 스크래퍼'의 핵심이 되는 스크래핑 파트에 대해서 알아보면서 거기에 쓰인 goqeury, goroutine, waitgoup에 대해서 설명하겠다. run 함수 run 함수는 Goroutine을 활용하여 스크래퍼(scrapeNavercode)를 병렬로 돌리고, 채널로 값을 받아온 후 원하는 형태로 값을 정리하는 역할을 수행하는 함수이다. func run(num int) { var baseURL string = "https://pts.map.naver.com/end-subway/ends/web/" // 20.. 2023. 8. 9. 5. Go를 이용한 스크래퍼 리팩토링하기 (1) - Introduction, 그런데 goquery, S3 Upload, Lambda 활용 코드를 곁들인 이 글에서는 go에서 goquery, lambda, s3 다루는 법을 자세하게 설명하지는 않습니다. 이 블로그에 다른 글을 통해 업로드 할 예정입니다. 그래도 제가 사용한 소스 코드 전체는 있으니 참고 가능합니다. 지난 번에 Python의 Multiprocessing 모듈을 활용하여 병렬처리를 하고, 해당 코드를 AWS Lambda에 올리려 했다가 대차게 실패했다는 글을 적었다. 해당 글은 아래에 https://kyumcoding.tistory.com/42 4. 파이썬 크롤링 코드에 Process, Pipe 적용하기 저번 시간에 AWS Lambda에서 Pool을 지원하지 않는다는 사실을 알게 되었다. (자세한 과정은 여기 참고) Process와 Pipe를 이용해서 코드를 다시 짜라는 말에 너무나 슬펐지만.. 2023. 8. 8. "The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint." 에러 해결 & GitHub Action Secrets를 활용하여 .env 파일 생성하기 (or .env 파일 기능 구현하.. 1. S3 Bucket 에러 해결 S3 Bucket을 람다와 동일한 계정이 아닌 다른 AWS 계정의 것으로 설정하게 되었더니 "api error PermanentRedirect: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint." 에러가 계속 발생. 원인 쭉 찾아보니 코드 위의 region과 버킷의 region이 다르면 발생한다고 함. 분석 버킷의 생성된 리전은 아래 빨간 박스 영역에서 확인 가능 그런데 분명 내 코드(정확히는 람다가 돌아가는 위치)도 버킷 위치도 일치하는데 자꾸 저 에러가 나는 것임;; 그래서.. 2023. 5. 25. 2. 파이썬 크롤링 코드 AWS Lambda에 올리고 결과물 S3에 업로드하기 - Lambda, IAM, S3 편 개선한 크롤링 코드를 AWS에 올리는 작업을 시작했다. (크롤러 개선 과정은 https://kyumcoding.tistory.com/36) AWS에 올리는 이유는 크게 2가지이다 1) 온프레미스의 비효율성 제거 크롤링 코드의 경우 하루에 한 번 30분 정도의 런타임만으로 돌아가는데, 이를 위해서 노트북 혹은 데스크탑을 하루종일 켜놔야 한다는 것은 매우매우 비효율적이고, 사실 불가능하다. (누구 노트북 하나 24시간 매일 켜놓거나, 아니면 크롤러 돌아갈 때 켜줘야 하는데 가능?) 2) 클라우드 서비스를 활용해서 크롤링 프로세스 자동화 & 파이프라인화 크롤링한 결과물을 데이터베이스에 넣는 과정으로 기획된 상태였다. 크롤러가 돌아가서 문서를 산출 -> 데이터베이스에 넣기 과정이 자동화되고 안정적으로 운영될 수.. 2023. 5. 7. 이전 1 2 3 4 다음