2012-09-29 4 views
0

Scrapy Crawlspider의 'Rules'섹션이 제대로 작동하려고합니다.Scrapy Crawlspider가 링크를 따라갈 수 없습니다.

나는 따라야 할 링크를 반환하는 xpath을 발견했습니다. 그것은

//*[@class="course_detail"]//td[4]/a/@href 

이며 약 2700 개의 URL을 반환합니다. 기본적으로

, 나는 xpath과 일치 모든 것을 따라 거미를 말하려고 해요,하지만 난 다음 코드가 제대로 동작하지 않습니다 :

rules = (
    Rule(SgmlLinkExtractor(allow=[r'.*'], 
          restrict_xpaths='//*[@class="course_detail"]//td[4]/a/@href' 
          ),    
     callback='parse_item' 
     ), 
) 

그렇게하지 오류가 발생하지만 거미는 내가 정의한 페이지를 지나치는 것처럼 보이지 않습니다. start_urls.

편집 : 알아 냈어! @href를 삭제해야했습니다. Hayden의 코드가 도움이 되었기 때문에 나는 그에게 답을 주었다.

답변

1

SgmlLinkExtractor으로 전달할 때 allowrestrict_xpaths이 같은 유형 (즉, 목록 또는 양쪽 문자열 모두)이어야한다고 생각합니다. 대부분의 예는 tuples를 사용

rules = (
    Rule(SgmlLinkExtractor(allow = (r'.*',), 
          restrict_xpaths = ('//*[@class="course_detail"]//td[4]/a/@href',) 
          ),    
     callback='parse_item' 
     ), 
) 

를 옆으로 유사한으로 시도하고 어디에 내 인수를 추적 할 Egyptian Brackets를 사용 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. Hayden! 불행히도 나는 여전히 같은 문제를 겪고있다 : ( – Jonathan

관련 문제