没有为特定域调用scrapy parse_item

时间:2014-08-22 22:16:33

标签: scrapy

我尝试使用Scrapy抓取Shoescribe。但不知怎的,没有调用parse_item。我尝试与其他网站相同的代码,它工作正常。完全不知道出了什么问题。任何帮助都会非常感激!谢谢!

import scrapy
from scrapy import log
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor
from lsspider.items import *

class ShoeScribeSpider(CrawlSpider):
    name = "shoescribe"
    merchant_name = "shoescribe.com"
    allowed_domains = ["www.shoescribe.com"]

    start_urls = [
        "http://www.shoescribe.com/us/women/ankle-boots_cod44709699mx.html",
    ]

    rules = (
        Rule(LinkExtractor(allow=('http://www.shoescribe.com/us/women/ankle-boots_cod44709699mx.html')), callback='parse_item', follow=True),
    )

    def parse_item(self, response):
        print 'parse_item'

        item = Item()
        item['url'] = response.url.split('?')[0]

        print item['url']
        return item

1 个答案:

答案 0 :(得分:0)

我不确定你是否已经弄明白了,但我在这里做了一些可能有帮助的观察。

    即使代码已执行,
  1. print语句也不适用于您的情况。通常您可以使用logging命令作为Scrapy推荐,或者您必须打开logging,以便Scrapy将所有stdout / stderr转发给您。
  2. 我基本上将您的代码复制到一个全新的scrapy项目,修改了item类,因此它将包含URL字段。然后我使用parse运行爬虫,看起来它通过了规则并且还使用了正确的回调函数。最后,它生成了Scrapyed Items。我打赌如果你写一些管道,结果也会正确生成。
  3. 以下是验证 您的代码正常工作的输出

    enter image description here