2014-07-06 63 views
0

我在Windows Vista 64位上运行Python.org版本2.7 64位以使用Scrapy。我有一些代码在我通过Command Shell运行时运行(除了一些Command Shell没有识别非Unicode字符的问题),但是当我尝试通过Python IDLE运行脚本时,我收到以下错误消息:Python Shell未运行Scrapy

Warning (from warnings module): 
    File "C:\Python27\mrscrap\mrscrap\spiders\test.py", line 24 
    class MySpider(BaseSpider): 
ScrapyDeprecationWarning: __main__.MySpider inherits from deprecated class scrapy.spider.BaseSpider, please inherit from scrapy.spider.Spider. (warning only on first subclass, there may be others) 

用来生成该错误代码是:

from scrapy.spider import BaseSpider 
from scrapy.selector import Selector 
from scrapy.utils.markup import remove_tags 
import re 

class MySpider(BaseSpider): 
    name = "wiki" 
    allowed_domains = ["wikipedia.org"] 
    start_urls = ["http://en.wikipedia.org/wiki/Asia"] 

    def parse(self, response): 
     titles = response.selector.xpath("normalize-space(//title)") 
     for titles in titles: 

      body = response.xpath("//p").extract() 
      body2 = "".join(body) 
      print remove_tags(body2) 

首先,这是什么错误,当它工作正常在命令外壳的原因是什么?其次,当我按照错误中的指示并用“Spider”代替代码中的BaseSpider的两个实例时,代码将在Python shell中运行,但什么也不做。没有错误,没有打印到日志,没有错误或警告,什么都没有。

谁能告诉我为什么这个修订版本的代码不打印它的输出到Python IDLE?

感谢

+0

而不是scrapy.spider import BaseSpider do'from scrapy.spider import Spider' – Jordan

+0

@Jordan我已经这样做了。当我做它不再错误,但只是没有做任何事情。 – gdogg371

+0

这是你的全部代码吗? –

回答

1

添加from scrapy.cmdline import execute到您的进口

然后把execute(['scrapy','crawl','wiki'])并运行你的脚本。

from scrapy.spider import Spider 
from scrapy.selector import Selector 
from scrapy.utils.markup import remove_tags 
import re 
from scrapy.cmdline import execute 
class MySpider(Spider): 
    name = "wiki" 
    allowed_domains = ["wikipedia.org"] 
    start_urls = ["http://en.wikipedia.org/wiki/Asia"] 

    def parse(self, response): 
     titles = response.selector.xpath("normalize-space(//title)") 
     for title in titles: 

      body = response.xpath("//p").extract() 
      body2 = "".join(body) 
      print remove_tags(body2) 

execute(['scrapy','crawl','wiki']) 
+0

键入python shell你的意思是? (''scrapy','crawl','wiki']) NameError:名称'execute'不是'',而是生成错误'Traceback(最近调用最后一个)': 文件“”,第1行, 定义为' – gdogg371

+0

import from scrapy.cmdline import首先执行,将导入添加到脚本的顶部,然后执行命令在底部,然后点击f5 –

+0

好的,我在脚本的顶部添加了导入,并在底部添加了执行行,低于打印声明。该代码没有错误,但它又一次没有做任何事情。 – gdogg371