학교/졸프

크롤링 속도 개선

daykim 2023. 7. 9. 15:29

selenium 

driver.find_element_by_css_selector()
  • HTML 코드 전체에서 매칭되는 처음 요소를 반환한다.

 

driver.find_elements_by_css_selector()
  • HTML 코드 전체에서 매칭되는 모든 요소를 리스트로 반환해준다.

 

발생했던 문제

  • 꽤 많은 시간이 소요되었는데도 스크롤이 내려가지 않았다.
  • 수집한 이미지의 정보가 출력되는 속도를 보니 너무 많은 시간이 소요되었다.

 

코드 수정

# 수정 전
images = driver.find_elements_by_css_selector(".grid-item")

# 수정 후
images = driver.find_elements_by_css_selector(".lazy")
  • 크롤링할 HTML 파일을 많이 가져오면, 네트워크 송수신에 시간이 걸릴 수 밖에 없다.
  • 또 상당한 양의 HTML 파일을 parsing하는데 있어서 관련 메모리, CPU도 많이 사용하기 때문에 속도가 느려질 수 밖에 없다.

 

추가 해결방법

  • 굉장히 많은 양의 크롤링이 필요하면, 일종의 배치잡을 만들어 하루에 일정 시간동안만 동작하도록 하는 방식으로 해결할 수도 있다. (ex. crontab 활용)

 

참고

 

구름EDU - 모두를 위한 맞춤형 IT교육

구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/

edu.goorm.io

 

'학교 > 졸프' 카테고리의 다른 글

LDA(Latent Dirichlet Allocation  (0) 2021.08.19
Doc2Vec  (0) 2021.08.17
selenium 네이버 뉴스 크롤링  (0) 2021.06.29
AWS EC2에서 Flask 구동하기  (0) 2021.06.28
Nginx와 Flask를 활용해서 서빙하기  (0) 2021.06.25