Scrapy "parse" 函数未执行

0 投票
1 回答
1301 浏览
提问于 2025-04-17 02:45

我在Ubuntu 11上开始使用scrapy,但遇到了一些问题。具体来说,下面代码中的解析函数没有执行,尽管终端显示爬虫已经成功运行并关闭了。

from scrapy.contrib.spiders import CrawlSpider
from scrapy.selector import HtmlXPathSelector



class myTestSpider(CrawlSpider):
    name="go4mumbai.com"
    domain_name = "go4mumbai.com"
    start_urls = ["http://www.go4mumbai.com/Mumbai_Bus_Route.php?busno=1"]

def parse(self, response):  
    hxs = HtmlXPathSelector(response)
    stopNames=hxs.select('//table[@cellspacing="2"]/tr/td[2]/a/text()').extract()
    print len(stopNames)

SPIDER = myTestSpider()

以下是终端的响应信息:

rupin@rupin-laptop:~/Desktop/ScrappyTest/basetest$ sudo scrapy crawl go4mumbai.com
2011-09-21 15:33:56+0530 [scrapy] INFO: Scrapy 0.12.0.2528 started (bot: basetest)
2011-09-21 15:33:56+0530 [scrapy] DEBUG: Enabled extensions: TelnetConsole,     SpiderContext, WebService, CoreStats, MemoryUsage, CloseSpider
2011-09-21 15:33:56+0530 [scrapy] DEBUG: Enabled scheduler middlewares:     DuplicatesFilterMiddleware
2011-09-21 15:33:56+0530 [scrapy] DEBUG: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, RedirectMiddleware, CookiesMiddleware, HttpCompressionMiddleware, DownloaderStats
2011-09-21 15:33:56+0530 [scrapy] DEBUG: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware
2011-09-21 15:33:56+0530 [scrapy] DEBUG: Enabled item pipelines: 
2011-09-21 15:33:56+0530 [scrapy] DEBUG: Telnet console listening on 0.0.0.0:6023
2011-09-21 15:33:56+0530 [scrapy] DEBUG: Web service listening on 0.0.0.0:6080
2011-09-21 15:33:56+0530 [go4mumbai.com] INFO: Spider opened
2011-09-21 15:33:58+0530 [go4mumbai.com] DEBUG: Crawled (200) <GET http://www.go4mumbai.com/Mumbai_Bus_Route.php?busno=1> (referer: None)
2011-09-21 15:33:58+0530 [go4mumbai.com] INFO: Closing spider (finished)
2011-09-21 15:33:58+0530 [go4mumbai.com] INFO: Spider closed (finished)

我是不是漏掉了代码的某个部分?请给点建议..

1 个回答

1

你的 parse() 函数好像没有放在你的爬虫类里面。把整个函数往右缩进一个位置,这样它就属于这个类了,就能被调用了。

撰写回答