钢铁工人和 scrapy

Iron worker and scrapy

我正在尝试使用 scrapy 创建一个 iron.io worker。

根据iron.io,我们需要将代码的所有依赖项放在 worker 本身中。

我创建了一个名为 module 的文件夹,其中包含所有第 3 方模块并通过 pip 安装了 scrapy。

pip install scrapy -t module/

当尝试通过 python module/scrapy/__init__.py 运行 scrapy 时,我得到

Traceback (most recent call last):
  File "module/scrapy/__init__.py", line 10, in <module>
    __version__ = pkgutil.get_data(__package__, 'VERSION').decode('ascii').strip()
  File "/usr/lib/python2.7/pkgutil.py", line 578, in get_data
    loader = get_loader(package)
  File "/usr/lib/python2.7/pkgutil.py", line 464, in get_loader
    return find_loader(fullname)
  File "/usr/lib/python2.7/pkgutil.py", line 474, in find_loader
    for importer in iter_importers(fullname):
  File "/usr/lib/python2.7/pkgutil.py", line 424, in iter_importers
    if fullname.startswith('.'):
AttributeError: 'NoneType' object has no attribute 'startswith'

如果您没有 Scrapy 可执行文件,您可以 运行 Scrapy 通过 cmdline:

python module/scrapy/cmdline.py

您还可以从脚本运行ScrapyHere is a very detailed answer.

你最好从 IronWorker 代码中使用 Scrapy,而不是从命令行调用它,就像它在 http://scrapy.org/ or in the tutorial: http://doc.scrapy.org/en/0.24/intro/tutorial.html

的首页上那样

要在 IronWorker 中使用它,在完成 pip 安装后,请务必添加:

pip 'scrapy' 

到您的 .worker 文件。然后在您的工作脚本中,您将导入它:

import scrapy

然后按照上面教程link中的说明使用它。