Open bakseoyong opened 1 year ago
[selenium headless user-agent 설정 시도] : 제대로 동작하나 속도가 더 느려졌습니다. 구글 바드 : Selenium headless를 활성화하면 속도가 느려질 수 있습니다. 이는 headless 모드가 렌더링된 브라우저보다 웹 페이지를 로드하고 상호 작용하는 데 더 많은 시간이 걸리기 때문입니다. 또한 headless 모드는 웹 페이지의 동적 데이터를 파싱할 수 없기 때문에, 이러한 데이터를 파싱해야 하는 경우 속도가 더욱 느려질 수 있습니다.
headless 옵션은 메모리의 사용량을 크게 줄이는 효과가 있습니다. 따라서 요청하는 스레드를 더 늘리는 방식으로 성능 개선을 할 수 있을것 같습니다.
지금의 응답데이터는 여러 과정을 거쳐 진행되는데 각각의 과정의 시간측정을 하는 코드가 존재하지 않아 명확한 측정을 하지 못하는 상태입니다. 각 단계마다 시간을 측정하는 코드를 우선으로 추가해야 합니다.
시간 측정 결과 드라이버 연결까지 8초, 웹 크롤링 1회에 8초정도 소요되었습니다. 드라이버 연결시간을 줄이기 위한 SeleniumDriverPool 생성을 고려해야 합니다.
[61]요청까지 걸린시간 : 8925 [63]요청까지 걸린시간 : 8925 [61] 크롤링 종료시간 : 16615 [63] 크롤링 종료시간 : 16822
CrawlingQueue + WebDriverPool을 이용해 야놀자, 여기어때 각각에서 다중요청에 대해 대응할 수 있도록 변경하고 이를 병합하는 메서드에서 @Async를 통한 비동기 처리를 진행할 예정입니다.
크롤링 알고리즘 동작 방식을 변경해야 합니다. 기존 방식
해결책
[selenium headless 설정 시도] : headless로 요청날리면 스크립트 요청인걸 확인한 사이트에서 응답데이터를 제공하지 않습니다.