scrapy如何从scrapinghub上的文件加载URL

scrapy如何从scrapinghub上的文件加载URL,scrapy,scrapinghub,Scrapy,Scrapinghub,我知道在本地工作时如何从外部源将数据加载到Scrapy spider中。但是我很难找到关于如何将这个文件部署到scrapinghub以及在那里使用什么路径的任何信息。现在我使用SH文档中的这种方法,但没有收到任何对象 import pkgutil class CodeSpider(scrapy.Spider): name = "code" allowed_domains = ["google.com.au"] def start_requests(self, ): f = pkgu

我知道在本地工作时如何从外部源将数据加载到Scrapy spider中。但是我很难找到关于如何将这个文件部署到scrapinghub以及在那里使用什么路径的任何信息。现在我使用SH文档中的这种方法,但没有收到任何对象

import pkgutil

class CodeSpider(scrapy.Spider):
name = "code"
allowed_domains = ["google.com.au"]

def start_requests(self, ):

    f = pkgutil.get_data("project", "res/final.json")
    a = json.loads(f.read())
谢谢。 我的安装文件

from setuptools import setup, find_packages

setup(
    name         = 'project',
    version      = '1.0',
    packages     = find_packages(),
    package_data = {'project': ['res/*.json']
    },
    entry_points = {'scrapy': ['settings = au_go.settings']},

    zip_safe=False,

)
我犯的错误

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/scrapy/core/engine.py", line 127, in _next_request
    request = next(slot.start_requests)
  File "/tmp/unpacked-eggs/__main__.egg/au_go/spiders/code.py", line 16, in start_requests
    a = json.loads(f.read())
AttributeError: 'NoneType' object has no attribute 'read'

根据您提供的回溯,我假设您的项目文件如下所示:

au_go/
  __init__.py
  settings.py
  res/
     final.json
  spiders/
      __init__.py
      code.py
scrapy.cfg
setup.py
在此假设下,
setup.py
需要引用名为
au\u go
的包:

from setuptools import setup, find_packages

setup(
    name         = 'au_go',
    version      = '1.0',
    packages     = find_packages(),
    package_data = {
        'au_go': ['res/*.json']
    },
    entry_points = {'scrapy': ['settings = au_go.settings']},
    zip_safe=False,
)

然后你可以使用
pkgutil.get_data(“au\u go”,“res/final.json”)

你检查并尝试了吗?@paul trmbrth谢谢。不知道为什么我需要这个文件在设置和我如何导入到我的蜘蛛。有什么想法吗?我尝试了一下,但导入的内容没有返回任何内容。我将它直接导入spider而不是示例中所示的设置文件中的唯一一件事就是。不要费心去引用
settings.py
。要点是
setup.py中的
package\u data
部分和
pkgutil.get\u data()
要访问数据,setup.py中的'project'不应该替换为'au\u go'吗?它改变了什么吗?有关软件包数据的更多详细信息,请访问scrapinghub支持中心: