scrapy error patterns

u_log·2021년 11월 3일
0

제목은 거창하지만 사실 주저리


새로운 회사에서 scrapy spider들을 디버깅하다 보니...
현재까지 파악된 건 크게 세 가지 패턴이 있었다.

  1. 잘못 지정된 태그위치
  2. 태그위치는 맞지만 가져오는 값이 없음
  3. js파일내부의 태그를 불러오지 못함.

1번은 크롤링할 대상 사이트가 업데이트 되면서 생기는 문제여서 변경된 태그 구조에 맞게 CSS query를 바꿔주면 됐다.

하지만 2번과 3번은 페이지가 동적으로 작동해서 생기는 문제였고, 이를 해결하는 방법은 selenium을 사용하는 것이다.

그런데 회사에서 내가 작업한 프로젝트에서는 zyte 클라우드에서 spider들을 스케쥴링해서 사용하는 상태여서 spider에 selenium을 적용하면(과금폭탄!) 안되는 상황이었다.

그렇다면... 남은 방법은 웹브라우저에서 필요한 데이터를 따와서 하나하나 request를 보내는 것이라는데.

거기까지 생각이 진행되고 나니 이런 생각이 들었다.

"아니 그럼. 이 코드 원래부터 작동안됐던 거 아냐?"

스타트업이라 그런지. 아무도 히스토리를 아는 사람이 없어서 어디 물어볼 수도 없고... 물어봐도 당연히 모르고... 허허...

scrapy가 에러코드가 섞여있어도 중간에 바로 어보트하지 않고 계속 코드를 진행하기 때문에 에러가 없는 코드는 계속 데이터를 긁어오니까 그대로 둔 것 같았다.

최종적으로 내 작업 절차는

  1. 스파이더 전체 실행
  2. 에러코드 분류(위의 1,2,3)
  3. 정적인 페이지 디버깅
  4. 동적인 페이지 코드들 따로 정리(작업불필요)
  5. 스파이더를 바꾸어 1.부터 진행

다음과 같이 되겠다.

일단 정적인 것들을 처리하고 나서 동적인 코드들을 어떻게 할지 생각해봐야겠다.

아무튼... 신기한 느낌이다.

profile
Dev, English, Stock Trading

0개의 댓글