2012-02-28 4 views
3

여기 내 코드입니다. 내 parse_item 메소드가 호출되지 않습니다.치료 parse_item 메서드가 호출되지 않습니다

from scrapy.contrib.spiders import CrawlSpider, Rule 
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 
from scrapy.selector import HtmlXPathSelector 

class SjsuSpider(CrawlSpider): 

    name = 'sjsu' 
    allowed_domains = ['sjsu.edu'] 
    start_urls = ['http://cs.sjsu.edu/'] 
    # allow=() is used to match all links 
    rules = [Rule(SgmlLinkExtractor(allow=()), follow=True), 
      Rule(SgmlLinkExtractor(allow=()), callback='parse_item')] 

    def parse_item(self, response): 
     print "some message" 
     open("sjsupages", 'a').write(response.body) 
+0

당신이 수에 대한 값을 지정해야합니까? :로

또한, 규칙을 작성할 수 있습니다 나는 당신의 거미가 분석 할 품목을 찾지 못하고 있다고 생각합니다. – dm03514

+0

나는 모른다. 그러나 그것은 의미가있다. 내가 모든 것을 스크랩하고 싶다면 허용 할 수있는 것은 무엇인가. – riship89

답변

6

허용 도메인은 'cs.sjsu.edu'이어야합니다.

치료에는 허용 된 도메인의 하위 도메인을 허용하지 않습니다.

rules = [Rule(SgmlLinkExtractor(), follow=True, callback='parse_item')] 
+1

룰 = [Rule (SgmlLinkExtractor(), follow = True, callback = self.parse_item)]이 아닌 것이 좋습니까? –

+0

예, 고마워요. – Acorn

+1

'self.parse_item'는 클래스 정의에서'self'가 범위에 없으므로 작동하지 않습니다. 그래서 'parse_item'은 문자열로 의미가 있습니다. –

관련 문제