2010-12-16 3 views
3

Je suis un débutant complet à Python et Scrapy donc j'ai commencé en essayant de reproduire le tutoriel. J'essaie de gratter le site Web www.dmoz.org selon le tutoriel.Scrapy Newbie Question - ne peut pas obtenir le fichier tutoriel de travail

je compose le dmoz_spider.py comme indiqué ci-dessous

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 

et ce que je suis censé obtenir via le site web est quelque chose de différent.
une idée de ce que je suis en train de bousiller?

+0

Ce que je reçois est ce 2010-12-16 18: 42: 29-0500 [scrapy] INFO: Scrapy 0.10.3 a commencé (bot: DMOZ) 2010-12-16 18: 42: 29-0500 [scrapy] DEBUG: Extensions activées: TelnetConsole, SpiderCont Traceback (appel le plus récent en dernier): Fichier "c: \ Python27 \ Scripts \ scrapy", ligne 4, en execute() fichier "c: \ Python27 \ lib \ site-packages \ scrapy \ cmdline.py", la ligne 130, en exécution _run_print_help (analyseur, _run_command, cmd, args, opte) fichier « c: \ Python27 \ lib \ site-packages \ scr apy \ cmdline.py ", ligne 96, dans _run_print_help func (* a, ** kw) Fichier" c: \ Python27 \ lib \ site-packages \ scrapy \ cmdline.py ", ligne 136, dans – racket99

Répondre

1

Il n'y a rien de mal avec le code que vous avez collé. Le problème doit être ailleurs, pouvez-vous coller toute la sortie que vous obtenez? (votre commentaire s'arrête là où commence la partie intéressante ...)

7

J'ai eu ce problème. Assurez-vous de faire les changements ci-dessous comme indiqué dans le tutoriel.

Ouvrir items.py et voir si vous avez changé de classe

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

dans:

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

Vous devez aller dans le répertoire contenant le fichier settings.py et exécuter

scrapy ramper dmoz à partir de là.

suivre la structure de votre projet contre https://github.com/scrapy/dirbot pour plus de clarté