2010-12-16 73 views
3

我是Python和Scrapy的完全新手,所以我开始尝试复制教程。我正在试图根据教程刮掉www.dmoz.org网站。Scrapy新手问题 - 无法获得教程文件的工作

我撰写dmoz_spider.py如下文所示

from scrapy.spider import BaseSpider 
from scrapy.selector import HtmlXPathSelector 

from dmoz.items import DmozItem 

class DmozSpider(BaseSpider): 
    name = "dmoz.org" 
    allowed_domains = ["dmoz.org"] 
    start_urls = [ 
     "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/", 
     "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/" 
    ] 

    def parse(self, response): 
     hxs = HtmlXPathSelector(response) 
     sites = hxs.select('//ul/li') 
     items = [] 
     for site in sites: 
      item = DmozItem() 
      item['title'] = site.select('a/text()').extract() 
      item['link'] = site.select('a/@href').extract() 
      item['desc'] = site.select('text()').extract() 
      items.append(item) 
     return items 

什么我应该通过网站得到的是不同的东西。
任何想法我搞砸了?

+0

什么我得到的是这个2010-12-16 18:42:29-0500 [scrapy] INFO:Scrapy 0.10.3开始(BOT:DMOZ) 2010-12-16 18:42:29-0500 [scrapy] DEBUG:启用扩展:TelnetConsole,SpiderCont 回溯(最近呼叫最后): 文件“c:\ Python27 \ Scripts \ scrapy”,第4行,在 execute() 文件“c:\ Python27 \ lib \ site-packages \ scrapy \ cmdline.py”,第130行,执行 _run_print_help(parser,_run_command,cmd,args,opts) 文件“c:\ Python27 \ LIB \站点包\ SCR apy \ cmdline.py“,第96行,在_run_print_help func(* a,** kw) 文件”c:\ Python27 \ lib \ site-packages \ scrapy \ cmdline.py“,行136 – racket99 2010-12-17 00:14:02

回答

1

你粘贴的代码没有问题。问题必须在其他地方,你能粘贴你得到的整个输出吗? (您的评论停止在有趣的部分开始...)

7

我有这个问题。确保您按照本教程中所述进行了以下更改。

打开items.py,看看你是否改变

class TutorialItem(Item): 
    title=Field() 
    link=Field() 
    desc=Field() 

到:

class DmozItem(Item): 
    title=Field() 
    link=Field() 
    desc=Field()