인덱스 페이지의 데이터 또는 정보를 기반으로 특정 페이지를 크롤링하기 위해 스파이더를 작성하려고합니다. 그런 다음 결과를 데이터베이스에 저장하십시오.인덱스 페이지 정보를 기반으로 웹 페이지를 크롤링하는 방법
예를 들어, stackoverflow.com/questions/tagged/scrapy를 크롤링하고 싶다고 가정 해 봅시다. 질문이 내 데이터베이스에 없으면 색인 페이지를 통해 갈 것입니다. 데이터베이스로 이동 한 다음 질문 링크를 클릭하고 해당 페이지를 크롤링합니다.
질문이 이미 데이터베이스에 있지만 답변 수가 데이터베이스의 것보다 큰 경우 : 해당 페이지를 다시 크롤링하십시오.
질문이 이미 데이터베이스에 있고 응답 카운터가 같은 경우 :이 질문을 무시하십시오.
현재 색인 페이지에서 모든 링크와 답변 개수 (이 예)를 얻을 수 있습니다. 하지만 거미가 대답 수에 대한 질문 페이지베이스 링크를 따르는 방법을 모르겠습니다.
두 스파이더 대신 하나의 스파이더를 사용하는 방법이 있습니다. 하나의 스파이더가 색인 페이지에서 모든 링크를 가져 와서 데이터를 데이터베이스와 비교하고 json 또는 csv 파일을 내 보낸 다음 전달합니다 다른 스파이더에게 질문 페이지를 크롤링 하시겠습니까?
스파이더가 실행 중일 때 start_urls 목록에 동적으로 URL을 추가 할 수 있습니까? 귀하의 예에서는 거미가 첫 번째 질문 페이지를 긁기 시작하지만 두 번째 페이지로 이어지지 않습니다. 첫 페이지를 긁어 내서 start_urls 기반에 두 번째 페이지를 추가 할 수 있습니까? 예를 들어, 첫 번째 페이지의 마지막 질문이 내 데이터베이스에없는 경우, 두 번째 페이지에서 내가 긁어 모으지 않은 새로운 질문이있을 수 있습니다. 그래서 두 번째 페이지로 가서 확인해야합니다. 스파이더가 실행되는 동안 어떻게 start_urls에 새 URL을 추가 할 수 있습니까? – user1499532