4

入門ガイドの指示に従って非常に基本的なスパイダーを使用していますが、何らかの理由でアイテムをスパイダーにインポートしようとするとエラーが返されます。スパイダーとアイテムのコードを以下に示します。

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

from myProject.items import item

class MyProject(BaseSpider):
    name = "spider"
    allowed_domains = ["website.com"]
    start_urls = [
        "website.com/start"
    ]

    def parse(self, response):
        print response.body

from scrapy.item import Item, Field

class ProjectItem(Item):
    title = Field()

このコードをスクレイピーで実行すると、スパイダーが見つからないか、アイテム ファイルをインポートできません。何が起きてる?これは正しく実行するための実際の例である必要がありますか?

4

4 に答える 4

6

で作業している間、これも数回ありましたscrapy。Python モジュールの先頭に次の行を追加できます。

from __future__ import absolute_import

詳細はこちら:

于 2013-04-14T11:41:58.977 に答える
4

それで、これは先日出くわした問題で、試行錯誤して修正できましたが、ドキュメントを見つけることができなかったので、誰かが起こった場合に備えてこれを載せると思いました私がしたのと同じ問題に遭遇します。

これは、ファイルの命名とPythonがモジュールのインポートをどのように処理するかに関する問題であるため、scrapyの問題ではありません。基本的に問題は、スパイダー ファイルにプロジェクトと同じ名前を付けると、インポートが壊れるということです。Python は、現在の位置に最も近いディレクトリからインポートしようとします。つまり、動作しないスパイダーのディレクトリからインポートしようとします。

基本的に、スパイダー ファイルの名前を別の名前に変更するだけで、問題なく動作します。

于 2013-04-13T18:23:48.080 に答える