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 활용)
참고
'학교 > 졸프' 카테고리의 다른 글
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 |