Scrapy shell调试不显示项目

时间:2014-01-26 19:36:03

标签: python python-2.7 scrapy

我使用Scrapy 0.22。我有一个使用项目加载器来提取项目的蜘蛛。当我从scrapy shell运行spider时,我只看到包含None的调试消息,而不是我的项目加载器中的项目。

  

2014-01-26 20:33:08 + 0100 [ChatroomSpider] DEBUG:从< 200 http://somedomain.com/?a=chat_rooms>刮掉       无

但是,如果我取消注释#print item行,我可以看到项目按预期打印到stdout。

蜘蛛:

class ChatroomSpider(BaseSpider):
    name = 'ChatroomSpider'
    allowed_domains = ['somedomain.com']
    start_urls = ['http://somedomain.com/?a=chat_rooms']

    def parse(self, response):
        selector = Selector(response)
        for chatroom_div in selector.xpath(r'id("body")/div[count(div) = 4 and div/div]'):
            loader = ChatroomLoader(chatroom_div)
            chatroom = loader.load_item()
            #print chatroom
            yield chatroom

装载机:

class ChatroomLoader(XPathItemLoader):

    default_item_class = ChatRoomItem

    name_in = Encode(encoding='utf-8')
    name_out = TakeFirst()

    description_in = StripAndEncode(encoding='utf-8')
    description_out = TakeFirst()

    datetime_in = StrpTime('%d.%m.%Y %H:%M:%S')
    datetime_out = TakeFirst()

    def __init__(self, room_selector):
        super(ChatroomLoader, self).__init__(selector=room_selector)

        self.add_xpath('name', r'div[1]/div/font/b/a/text()')
        self.add_xpath('description', r'div[2]/div/text()')
        self.add_xpath('users', r'div[3]/div/a/font/text()')
        self.add_xpath('datetime', r'id("copyright")/text()[4]', re=r'[0-3]?[0-9].[0-2][0-9].201[3-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]')

1 个答案:

答案 0 :(得分:1)

如果您使用自己的管道,请确保从中返回项目。

有关管道的更多信息; http://doc.scrapy.org/en/latest/topics/item-pipeline.html