2011-12-01 9 views
0

この例のリンクをたどる方法:http://snippets.scrapy.org/snippets/7/? 最初のページのリンクにアクセスした後にスクリプトが停止します。スカッピーとのリンクに従う方法

class MySpider(BaseSpider): 

class MySpider(CrawlSpider) 

し、

rules = (
    Rule(SgmlLinkExtractor(allow=()), 
     callback='parse',follow=True), 
) 

を追加しかし、それはすべてのサイト

をクロールしません:

class MySpider(BaseSpider): 
"""Our ad-hoc spider""" 
name = "myspider" 
start_urls = ["http://stackoverflow.com/"] 

question_list_xpath = '//div[@id="content"]//div[contains(@class, "question-summary")]' 

def parse(self, response): 
    hxs = HtmlXPathSelector(response) 

    for qxs in hxs.select(self.question_list_xpath): 
     loader = XPathItemLoader(QuestionItem(), selector=qxs) 
     loader.add_xpath('title', './/h3/a/text()') 
     loader.add_xpath('summary', './/h3/a/@title') 
     loader.add_xpath('tags', './/a[@rel="tag"]/text()') 
     loader.add_xpath('user', './/div[@class="started"]/a[2]/text()') 
     loader.add_xpath('posted', './/div[@class="started"]/a[1]/span/@title') 
     loader.add_xpath('votes', './/div[@class="votes"]/div[1]/text()') 
     loader.add_xpath('answers', './/div[contains(@class, "answered")]/div[1]/text()') 
     loader.add_xpath('views', './/div[@class="views"]/div[1]/text()') 

     yield loader.load_item() 

は私が変更しようとしましたの

おかげで、

答えて

0

はい、あなたはCrawlSpiderをこする開始するparseを使用しているため、CrawlSpiderをサブクラス化し、parse_pageのようなものにparse機能の名前を変更する必要があります。 This was already answered

関連する問題