Python Scrapy未进入解析方法

Python Scrapy未进入解析方法,python,python-2.7,web-scraping,scrapy,Python,Python 2.7,Web Scraping,Scrapy,我对Scrapy有一个问题,由于某种原因它没有进入我的解析方法,我不知道为什么会这样。我尝试过不同的选择,但没有成功 这就是我的代码现在的样子。具体来说,有两条print语句,并且parse()方法中的一条语句没有被调用 from scrapy.spider import BaseSpider from scrapy.selector import HtmlXPathSelector from scrapy import log from scrapy.contrib.spiders impor

我对Scrapy有一个问题,由于某种原因它没有进入我的解析方法,我不知道为什么会这样。我尝试过不同的选择,但没有成功

这就是我的代码现在的样子。具体来说,有两条print语句,并且parse()方法中的一条语句没有被调用

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

from comments.items import CustomerReview
import re

class AppidSpider(BaseSpider):

  name = "appid"
    allowed_domains = ["itunes.apple.com"]
    start_urls = [
        "http://itunes.apple.com/us/genre/ios/id36?mt=8"
    ]

    rules = [Rule(SgmlLinkExtractor(), follow=True, callback='parse')]
    print "---> THIS IS TEST 1"

    def parse(self, response):
        print " ----> THIS IS TEST 2"
        # ... More code afterwards
这就是输出。如您所见,测试2从未打印

$ scrapy crawl appid
2012-07-05 13:41:02+0000 [scrapy] INFO: Scrapy 0.14.4 started (bot: comments)
2012-07-05 13:41:02+0000 [scrapy] DEBUG: Enabled extensions: LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, MemoryUsage, SpiderState
---> THIS IS TEST 1
2012-07-05 13:41:02+0000 [scrapy] DEBUG: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, RedirectMiddleware, CookiesMiddleware, HttpCompressionMiddleware, ChunkedTransferMiddleware, DownloaderStats
2012-07-05 13:41:02+0000 [scrapy] DEBUG: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware
2012-07-05 13:41:02+0000 [scrapy] DEBUG: Enabled item pipelines: FilterWordsPipeline
2012-07-05 13:41:02+0000 [appid] INFO: Spider opened
2012-07-05 13:41:02+0000 [appid] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2012-07-05 13:41:02+0000 [scrapy] DEBUG: Telnet console listening on 0.0.0.0:6023
2012-07-05 13:41:02+0000 [scrapy] DEBUG: Web service listening on 0.0.0.0:6080
2012-07-05 13:41:02+0000 [appid] DEBUG: Crawled (200) <GET http://itunes.apple.com/us/genre/ios/id36?mt=8> (referer: None)
2012-07-05 13:41:02+0000 [appid] INFO: Closing spider (finished)
2012-07-05 13:41:02+0000 [appid] INFO: Dumping spider stats:
        {'downloader/request_bytes': 222,
         'downloader/request_count': 1,
         'downloader/request_method_count/GET': 1,
         'downloader/response_bytes': 9927,
         'downloader/response_count': 1,
         'downloader/response_status_count/200': 1,
         'finish_reason': 'finished',
         'finish_time': datetime.datetime(2012, 7, 5, 13, 41, 2, 694678),
         'scheduler/memory_enqueued': 1,
         'start_time': datetime.datetime(2012, 7, 5, 13, 41, 2, 604025)}
2012-07-05 13:41:02+0000 [appid] INFO: Spider closed (finished)
2012-07-05 13:41:02+0000 [scrapy] INFO: Dumping global stats:
        {'memusage/max': 95318016, 'memusage/startup': 95318016}
$scrapy crawl appid
2012-07-05 13:41:02+0000[scrapy]信息:scrapy 0.14.4已启动(机器人:注释)
2012-07-05 13:41:02+0000[scrapy]调试:启用的扩展:LogStats、TelnetConsole、CloseSpider、WebService、CoreStats、MemoryUsage、SpiderState
--->这是测试1
2012-07-05 13:41:02+0000[scrapy]调试:启用的下载中间件:HttpAuthMiddleware、DownloadTimeoutMiddleware、UserAgentMiddleware、RetryMiddleware、DefaultHeadersMiddleware、RedirectMiddleware、Cookies中间件、HttpCompressionMiddleware、ChunkedTransferMiddleware、DownloadersStats
2012-07-05 13:41:02+0000[scrapy]调试:启用的spider中间件:HttpErrorMiddleware、OffsiteMiddleware、referermidleware、urlengthmiddleware、DepthMiddleware
2012-07-05 13:41:02+0000[scrapy]调试:启用的项目管道:过滤器或Spipeline
2012-07-05 13:41:02+0000[appid]信息:蜘蛛已打开
2012-07-05 13:41:02+0000[appid]信息:爬网0页(以0页/分钟的速度),刮取0项(以0项/分钟的速度)
2012-07-05 13:41:02+0000[scrapy]调试:Telnet控制台在0.0.0.0上侦听:6023
2012-07-05 13:41:02+0000[scrapy]调试:在0.0.0.0:6080上侦听Web服务
2012-07-05 13:41:02+0000[appid]调试:已爬网(200)(参考:无)
2012-07-05 13:41:02+0000[appid]信息:关闭十字轴(已完成)
2012-07-05 13:41:02+0000[appid]信息:转储蜘蛛统计信息:
{'downloader/request_bytes':222,
“下载程序/请求计数”:1,
“downloader/request\u method\u count/GET”:1,
“downloader/response_bytes”:9927,
“下载程序/响应计数”:1,
“下载程序/响应状态\计数/200”:1,
“完成原因”:“完成”,
“完成时间”:datetime.datetime(2012,7,5,13,41,2694678),
“调度程序/内存已排队”:1,
“开始时间”:datetime.datetime(2012,7,5,13,41,2604025)}
2012-07-05 13:41:02+0000[appid]信息:蜘蛛侠关闭(已完成)
2012-07-05 13:41:02+0000[scrapy]信息:倾销全球统计数据:
{'memusage/max':95318016,'memusage/startup':95318016}

为什么要将parse作为字符串传递?请尝试
callback=self.parse

为什么要将parse作为字符串传递?尝试
callback=self.parse

正如Creshal在callback中所说,您需要使用call-some方法,而不是parse,您的其他自定义方法

但在这种情况下,这不应该是问题,因为你实际上没有任何规则可以遵循,所以这并不重要


我尝试了你的代码,它对我来说很好,它打印出了两条消息。

正如Creshal在callback中所说,你需要使用call-some方法,而不是parse,你的其他自定义方法

但在这种情况下,这不应该是问题,因为你实际上没有任何规则可以遵循,所以这并不重要


我尝试了你的代码,它对我来说很好,它可以打印两条消息。

谢谢。当我放置self.parse时,我得到了错误名称error:name'self'未定义,这可能相关吗?可能是缩进或其他什么问题?可能是。摘录的缩进毫无意义,我猜调用和解析方法都属于这个类。是吗?我一问这个问题就试过了。不知道是什么,但这是压痕的问题。我重新缩进了整个剧本,现在效果很好。看起来它本来是给我的:)谢谢。当我放置self.parse时,我得到了错误名称error:name'self'未定义,这可能相关吗?可能是缩进或其他什么问题?可能是。摘录的缩进毫无意义,我猜调用和解析方法都属于这个类。是吗?我一问这个问题就试过了。不知道是什么,但这是压痕的问题。我重新缩进了整个剧本,现在效果很好。看起来对我来说是:)谢谢你的帮助。这不是答案,但它让我找到了答案,事实是它对你有效,而不是对我。帮助的要点。这不是答案,但它让我找到了答案,事实上它对你有效,而不是对我有效。如果你使用规则,你应该从爬行蜘蛛而不是BaseSpider继承,并为解析方法选择一个不同的名称(而不是“parse”)。谢谢,这可以解释我现在面临的第二个问题。如果你使用规则,您应该从CrawlSpider而不是BaseSpider继承,并为解析方法选择一个不同的名称(而不是“parse”)。谢谢,这可以解释我现在面临的第二个问题。