나는 scrapy 프레임 워크를 사용하여 일부 제품 양식 웹 사이트를 스크랩하기 위해 웹 스파이더를 작성했습니다. 나는 쓰여진 거미의 범위와 누락 된 항목을 계산하는 가장 좋은 방법이 무엇인지 궁금합니다.치료 webspider의 적용 범위를 계산
지금 당장 사용하고있는 것은 로깅 사례이며, 예외를 구문 분석하거나 예외를 발생시킬 수 없습니다. 예를 들어 : 제품 가격이나 장소 주소에 특정 형식이 필요할 때 작성한 정규식이 스크랩 된 문자열과 일치하지 않습니다. 또는 특정 데이터에 대한 내 xpath
선택자가 아무 것도 반환하지 않을 때.
때로는 제품이 한 페이지 또는 여러 페이지에 나열 될 때 curl
및 grep
을 사용하여 대략적으로 제품 수를 계산합니다. 그러나 이것을 처리하는 더 나은 관행이 있는지 궁금 해서요.
저는 개인적으로 EAFP 스타일을 더 선호합니다. 그래서이 답변은 도움이되지만, 1 웹 페이지에서 20 개의 세부 정보를 스크랩하면 20 개의 try 및 except 절이 가득 찼습니다. –
@HadyElsahar 아니요, 'spider_error' 신호 처리기가있는 경우 크롤링하는 동안 발생하는 모든 예외가 처리기에서 "사용 가능"하게됩니다. 사용자 지정 예외를 발생 시키면 오류 분석 및 처리가 쉬워 질 것입니다. – alecxe
네, 그러나 [옵션 항목]을 가져 오지 못하면 거미가 나머지 세부 정보를 긁어 모으기 위해 try catch 절의 각 세부 사항을 처리하는 것을 선호합니다. 또한, 실제로 실패한 부분에 대한 전용 로그 메시지 (예 : 가격 텍스트 가져 오기 또는 구문 분석) –