2

私はPythonに取り掛かり始めています。はい、このサイトとWebで答えを検索しましたが、どういうわけか実際に実行できません。

Spiderclass EbaySpider を作成しました。このクラスは Spider/ebay.py にあり、コマンド ラインから問題なく起動できます (JSON ファイルへの出力でも)。ここで、別の .py ファイル内からスクレイピーを開始したいので、クロールされたデータに直接アクセスして GUI に出力できます (方法については後で考えます)。

この質問からコードを取得し(スパイダーを複数回実行する必要がないため、質問者のコード)、追加しました

from spiders import ebay
from scrapy.crawler import CrawlerProcess

最初に、必要なすべてのリソースを手元に用意します。

私が得るエラーは

ImportError: 名前 ebay をインポートできません。

当然のことながら、インポートステートメントを「ebay」から「EbaySpider」に変更したり、「スパイダー」を「spiders.ebay」または「projectname.spiders.ebay」に変更したりしてみましたが、どういうわけかどれも機能していないようです。

この問題を修正する方法、またはスパイダーを実行し、Python プログラム内でクロールされたデータにアクセスする別の方法を教えていただければ幸いです。私は機能し、半分理解できるものに満足しています:)

ありがとう!

4

2 に答える 2

0

基本的に、3 つのオプションがあります。

  • 「スパイダー」ディレクトリをモジュールとして PYTHONPATH にインストールします
  • 「ebay.py」ファイルをスクリプトと同じディレクトリに置き、import ebay.
  • Python パスを変更して、Python がスパイダーを見つけられるようにします。

__init__.py3 番目のオプションでは、ディレクトリにファイルを作成する必要がありますspiders。空にすることができます。spiders次に、スクリプトを次のように変更する必要があります (プログラムが実行されているディレクトリのサブディレクトリであると仮定します)。

import os
import sys
sys.path.append(os.getcwd()+'/spiders')
print sys.path
from spiders import ebay
于 2013-03-19T21:08:02.440 に答える
0

Python の相対インポート機能を試して、Python スクリプトに関連するディレクトリからモジュールをインポートできます。spidersモジュールがあなたのものではないため、モジュールをインポートできない理由PYTHON_PATH

from .spiders import ebay

注:前のドットspiders

于 2013-03-19T20:31:10.090 に答える