私がScrapy Cloudにデプロイし、パッケージリソースとしてローカルファイルを使用する、「ファイルリソース」というサンプルのScrapyプロジェクトがあります。 (唯一のテストのための偽の、)プロキシのリストと
$ tree
.
├── fileresource
│ ├── __init__.py
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── resources
│ │ └── mylist.txt
│ ├── settings.py
│ └── spiders
│ ├── example.py
│ └── __init__.py
├── requirements.txt
├── scrapinghub.yml
├── scrapy.cfg
└── setup.py
私のサンプルファイル:
$ cat fileresource/resources/mylist.txt
http://localhost:45793
http://localhost:45794
http://localhost:45795
そして、これはsys
とos
を使用して、リソースファイルのパスを解決PROXY_LIST
設定で、例settings.py
次のとおりです。
$ cat fileresource/settings.py
# -*- coding: utf-8 -*-
import os
import sys
BOT_NAME = 'fileresource'
SPIDER_MODULES = ['fileresource.spiders']
NEWSPIDER_MODULE = 'fileresource.spiders'
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.retry.RetryMiddleware': 90,
'scrapy_proxies.RandomProxy': 100,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
}
PROXY_LIST = os.path.join(os.path.dirname(sys.modules['fileresource'].__file__),
'resources/mylist.txt')
setup.py
は非常にthe example in Scrapinghub's knowledge baseのようなものです:
$ cat setup.py
# Automatically created by: shub deploy
from setuptools import setup, find_packages
setup(
name = 'fileresource',
version = '1.0',
packages = find_packages(),
package_data={
'fileresource': ['resources/*.txt']
},
entry_points = {'scrapy': ['settings = fileresource.settings']},
zip_safe=False,
)
私はscrapy-proxies
を持つrequirements.txt
ファイルでそれをテストした:
$ cat requirements.txt
scrapy-proxies
$ cat scrapinghub.yml
project: 123456789
requirements:
file: requirements.txt
あなたはhttps://helpdesk.scrapinghub.com/support/solutions/articles/22000200416-deploying-non-code-を確認しましたファイル? –
私は解決策を試みますが、私は結果を得ます。 "import pkgutil PROXY_LIST = pkgutil.get_data(" bases_de_datos "、" resources/proxylist.txt ")'メッセージは "PROXY_LISTの設定がありません"です。 –
ソリューションで自分の仕事を進めることができました今はすべてを文字列として扱います。例外:IOError:[Errno 2]そのようなファイルやディレクトリはありません: 'http://200.76.236.106:8080\nhttp://189.158.185.148:8080\nhttp://201.173.165.17:8080\nhttp://200.92 .152.130:8080 \ nhttp://189.194.48.14:8080 \ nhttp://189.201.242.202:8080 \ nhttp:// ..... –