0

Beautiful Soup と Mechanized を使用して Python を実行できますが、Spray-Scraper を使用しようとすると、何らかの理由で動作しません。チュートリアルでスクレーパーをテストしようとするとどうなるかの例を次に示します。

プロジェクト名&BOT名=「tutorial」

以下のスクリプトは、私が使用した items.py と settings.py です。

アイテム.py

import scrapy

class DmozSpider(scrapy.Spider):
    name = "dmoz"
    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):
        filename = response.url.split("/")[-2]
        with open(filename, 'wb') as f:
            f.write(response.body)

設定.py

BOT_NAME = 'tutorial'

SPIDER_MODULES = ['tutorial.spiders']
NEWSPIDER_MODULE = 'tutorial.spiders'

CMD

C:\Users\Turbo>scrapy startproject tutorial
New Scrapy project 'tutorial' created in:
    C:\Users\Turbo\tutorial

You can start your first spider with:
    cd tutorial
    scrapy genspider example example.com

C:\Users\Turbo>cd tutorial

C:\Users\Turbo\tutorial>scrapy crawl dmoz
Traceback (most recent call last):
  File "C:\Python27\Scripts\scrapy-script.py", line 9, in <module>
    load_entry_point('scrapy==0.24.4', 'console_scripts', 'scrapy')()
  File "C:\Python27\lib\site-packages\scrapy-0.24.4-py2.7.egg\scrapy\cmdline.py"
, line 143, in execute
    _run_print_help(parser, _run_command, cmd, args, opts)
  File "C:\Python27\lib\site-packages\scrapy-0.24.4-py2.7.egg\scrapy\cmdline.py"
, line 89, in _run_print_help
    func(*a, **kw)
  File "C:\Python27\lib\site-packages\scrapy-0.24.4-py2.7.egg\scrapy\cmdline.py"
, line 150, in _run_command
    cmd.run(args, opts)
  File "C:\Python27\lib\site-packages\scrapy-0.24.4-py2.7.egg\scrapy\commands\cr
awl.py", line 58, in run
    spider = crawler.spiders.create(spname, **opts.spargs)
  File "C:\Python27\lib\site-packages\scrapy-0.24.4-py2.7.egg\scrapy\spidermanag
er.py", line 44, in create
    raise KeyError("Spider not found: %s" % spider_name)
KeyError: 'Spider not found: dmoz'
4

1 に答える 1

0

問題は、スパイダーを に入れていることですitems.py

代わりに、 package を作成し、そのspiders中に a を作成してdmoz.py、スパイダーをその中に入れます。

詳細については、チュートリアルの最初の Spiderの段落を参照してください。

于 2014-12-10T16:42:33.957 に答える