未为特定域调用scrapy parse_项

未为特定域调用scrapy parse_项,scrapy,Scrapy,我试着用刮痧来爬鞋。但不知何故,parse_项没有被调用。我试着和其他网站使用相同的代码,效果很好。完全不知道出了什么问题。任何帮助都将非常感谢!谢谢 import scrapy from scrapy import log from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors import LinkExtractor from lsspider.items import *

我试着用刮痧来爬鞋。但不知何故,parse_项没有被调用。我试着和其他网站使用相同的代码,效果很好。完全不知道出了什么问题。任何帮助都将非常感谢!谢谢

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

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

  • print
    语句在您的情况下不起作用,即使代码已执行。通常,您可以按照Scrapy的建议使用该命令,或者您必须打开该命令,以便Scrapy将所有stdout/stderr转发给您
  • 我基本上是将您的代码复制到一个全新的scrapy项目中,修改了
    item
    类,使其包含URL字段。然后,我使用
    解析运行爬虫程序,它似乎通过了规则,并且使用了正确的回调函数。最后,它已生成了已刮削的项目。我打赌,如果你编写一些管道,结果也会正确生成
  • 以下是证明代码正常工作的输出


    你能仔细检查一下你发布的代码吗?也许可以试着找出更多的问题?