【问题标题】:Scrapy shell ErrorScrapy shell 错误
【发布时间】:2015-08-21 04:42:56
【问题描述】:

我是 Scrapy 的新手,正在阅读教程。 运行此命令并出现错误。

C:\Users\Sandra\Anaconda>scrapy shell 'http://scrapy.org'

特别是URLError: <urlopen error [Errno 10051] A socket operation was attempted to an unreachable network>是什么

完整的错误信息:

2015-08-20 23:35:08 [scrapy] INFO: Scrapy 1.0.3 started (bot: scrapybot)
2015-08-20 23:35:08 [scrapy] INFO: Optional features available: ssl, http11, boto
2015-08-20 23:35:08 [scrapy] INFO: Overridden settings: {'LOGSTATS_INTERVAL': 0}
2015-08-20 23:35:10 [scrapy] INFO: Enabled extensions: CloseSpider, TelnetConsole, CoreStats, SpiderState
2015-08-20 23:35:10 [boto] DEBUG: Retrieving credentials from metadata server.
2015-08-20 23:35:10 [boto] ERROR: Caught exception reading instance data
Traceback (most recent call last):
File "C:\Users\Sandra\Anaconda\lib\site-packages\boto\utils.py", line 210, in retry_url
r = opener.open(req, timeout=timeout)
File "C:\Users\Sandra\Anaconda\lib\urllib2.py", line 431, in open
response = self._open(req, data)
File "C:\Users\Sandra\Anaconda\lib\urllib2.py", line 449, in _open
'_open', req)
File "C:\Users\Sandra\Anaconda\lib\urllib2.py", line 409, in _call_chain
result = func(*args)
File "C:\Users\Sandra\Anaconda\lib\urllib2.py", line 1227, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "C:\Users\Sandra\Anaconda\lib\urllib2.py", line 1197, in do_open
raise URLError(err)
URLError: <urlopen error [Errno 10051] A socket operation was attempted to an unreachable network>
2015-08-20 23:35:10 [boto] ERROR: Unable to read instance data, giving up
2015-08-20 23:35:10 [scrapy] INFO: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddlewar
e, RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware, HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddlewar
e, ChunkedTransferMiddleware, DownloaderStats
2015-08-20 23:35:10 [scrapy] INFO: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthM
iddleware, DepthMiddleware
2015-08-20 23:35:10 [scrapy] INFO: Enabled item pipelines:
2015-08-20 23:35:10 [scrapy] DEBUG: Telnet console listening on 127.0.0.1:6023
Traceback (most recent call last):
 File "C:\Users\Sandra\Anaconda\Scripts\scrapy-script.py", line 5, in <module>
sys.exit(execute())
File "C:\Users\Sandra\Anaconda\lib\site-packages\scrapy\cmdline.py", line 143, in execute
_run_print_help(parser, _run_command, cmd, args, opts)
File "C:\Users\Sandra\Anaconda\lib\site-packages\scrapy\cmdline.py", line 89, in _run_print_help
func(*a, **kw)
File "C:\Users\Sandra\Anaconda\lib\site-packages\scrapy\cmdline.py", line 150, in _run_command
cmd.run(args, opts)
File "C:\Users\Sandra\Anaconda\lib\site-packages\scrapy\commands\shell.py", line 63, in run
shell.start(url=url)
File "C:\Users\Sandra\Anaconda\lib\site-packages\scrapy\shell.py", line 44, in start
self.fetch(url, spider)
File "C:\Users\Sandra\Anaconda\lib\site-packages\scrapy\shell.py", line 81, in fetch
url = any_to_uri(request_or_url)
File "C:\Users\Sandra\Anaconda\lib\site-packages\w3lib\url.py", line 232, in any_to_uri
return uri_or_path if u.scheme else path_to_file_uri(uri_or_path)
File "C:\Users\Sandra\Anaconda\lib\site-packages\w3lib\url.py", line 213, in path_to_file_uri
x = moves.urllib.request.pathname2url(os.path.abspath(path))
File "C:\Users\Sandra\Anaconda\lib\nturl2path.py", line 58, in pathname2url
raise IOError, error
Error: Bad path: C:\Users\Sandra\Anaconda\'http:\scrapy.org'

这里是安装的软件包列表: # C:\Users\Sandra\Anaconda 环境中的包: # _许可证 1.1 py27_0
雪花石膏 0.7.3 py27_0
蟒蛇 2.3.0 np19py27_0
argcomplete 0.8.9 py27_0
astropy 1.0.3 np19py27_0
通天塔 1.3 py27_0
backports.ssl 匹配主机名 3.4.0.2 bcolz 0.9.0 np19py27_0
美丽的汤 4.3.2 py27_1
美丽的汤4 4.3.2 binstar 0.11.0 py27_0
位数组 0.8.1 py27_1
火焰 0.8.0 火焰核心 0.8.0 np19py27_0
blz 0.6.2 np19py27_1
散景 0.9.0 np19py27_0
博托 2.38.0 py27_0
瓶颈 1.0.0 np19py27_0
cdecimal 2.3 py27_1
证书 14.05.14 py27_0
cffi 1.1.2 py27_0
特性 14.3.0 客户端 0.3.4 py27_0
colorama 0.3.3 py27_0
康达 3.16.0 py27_0
conda-build 1.14.0 py27_0
conda-env 2.4.2 py27_0
configobj 5.0.6 py27_0
crcmod 1.7 密码学 0.9.3 py27_0
cssselect 0.9.1 py27_0
cython 0.22.1 py27_0
cytoolz 0.7.3 py27_0
数据形状 0.4.5 np19py27_0
装饰器 3.4.2 py27_0
文档 0.6.2 docutils 0.12 py27_1
dynd-python 0.6.5 np19py27_0
枚举34 1.0.4 py27_0
快速缓存 1.0.2 py27_0
文件块 1.6 烧瓶 0.10.1 py27_1
funcsigs 0.4 py27_0
期货 3.0.2 py27_0
gcs-oauth2-boto-plugin 1.9 gevent 1.0.1 py27_0
gevent-websocket 0.9.3 py27_0
谷歌 api-python 客户端 1.4.0 谷歌 apitools 0.4.3 greenlet 0.4.7 py27_0
咧嘴笑 1.2.1 py27_2
gsutil 4.12 h5py 2.5.0 np19py27_1
hdf5 1.8.15.1 2
httplib2 0.9.1 idna 2.0 py27_0
ipaddress 1.0.7 py27_0
ipython 3.2.0 py27_0
ipython-notebook 3.2.0 py27_0
ipython-qtconsole 3.2.0 py27_0
它的危险 0.24 py27_0
jdcal 1.0 py27_0
绝地 0.8.1 py27_0
jinja2 2.7.3 py27_2
jsonschema 2.4.0 py27_0
启动器 1.0.0 1
llvmlite 0.5.0 py27_0
lxml 3.4.4 py27_0
标记安全 0.23 py27_0
matplotlib 1.4.3 np19py27_1
菜单安装 1.0.4 py27_0
失谐 0.5.1 py27_1
模拟 1.0.1 py27_0
先生工作 0.4.4 多重调度 0.4.7 py27_0
networkx 1.9.1 py27_0
nltk 3.0.3 np19py27_0
节点 webkit 0.10.1 0
鼻子 1.3.7 py27_0
numba 0.19.1 np19py27_0
numexpr 2.4.3 np19py27_0
numpy 1.9.2 py27_0
oauth2client 1.4.7 odo 0.3.2 np19py27_0
openpyxl 1.8.5 py27_0
熊猫 0.16.2 np19py27_0
帕西 0.3.0 np19py27_0
模式 2.6 铅 0.110 pep8 1.6.2 py27_0
枕头 2.8.2 py27_0
点 7.1.0 py27_1
层 3.6 py27_0
protopc 0.10.0 psutil 2.2.1 py27_0
py 1.4.27 py27_0
pyasn1 0.1.7 py27_0
pyasn1-模块 0.0.5 pycosat 0.6.1 py27_0
pycparser 2.14 py27_0
pycrypto 2.6.1 py27_3
pyflakes 0.9.2 py27_0
pygments 2.0.2 py27_0
pyopenssl 0.15.1 py27_1
pyparsing 2.0.3 py27_0
pyqt 4.10.4 py27_1
pyreadline 2.0 py27_0
pytables 3.2.0 np19py27_0
pytest 2.7.1 py27_0
蟒蛇 2.7.9 1
python-dateutil 2.4.2 py27_0
python-gflags 2.0 pytz 2015.4 py27_0
pywin32 219 py27_0
pyyaml 3.11 py27_1
pyzmq 14.7.0 py27_0
queuelib 1.2.2 py27_0
请求 2.7.0 py27_0
重试装饰器 1.0.0 牛仔竞技表演 0.2.3 绳索 0.9.4 py27_1
RSA 3.1.4 runipy 0.1.3 py27_0
scikit-image 0.11.3 np19py27_0
scikit-learn 0.16.1 np19py27_0
scipy 0.15.1 np19py27_0
刮痧 1.0.3 海生 0.5.1 np19py27_0
服务标识 14.0.0 安装工具 18.1 py27_0
简单的json 3.6.5 6 1.9.0 py27_0
雪球茎 1.2.0 py27_0
sockjs-tornado 1.0.1 py27_0
袜子分支 1.1 狮身人面像 1.3.1 py27_0
狮身人面像 rtd 主题 0.1.7 sphinx_rtd_theme 0.1.7 py27_0
spyder 2.3.5.2 py27_0
spyder-app 2.3.5.2 py27_0
sqlalchemy 1.0.5 py27_0
ssl_match_hostname 3.4.0.2 py27_0
statsmodels 0.6.1 np19py27_0
同情 0.7.6 py27_0
表 3.2.0 toolz 0.7.2 py27_0
龙卷风 4.2 py27_0
扭曲的 15.3.0 py27_0
ujson 1.33 py27_0
unicodecsv 0.9.4 py27_0
uritemplate 0.6 w3lib 1.12.0 py27_0
werkzeug 0.10.4 py27_0
车轮 0.24.0 py27_0
xlrd 0.9.3 py27_0
xlsxwriter 0.7.3 py27_0
xlwings 0.3.5 py27_0
xlwt 1.0.0 py27_0
zlib 1.2.8 0
zope.interface 4.1.2 py27_1

【问题讨论】:

    标签: shell python-2.7 scrapy


    【解决方案1】:

    该特定错误消息由boto (boto 2.38.0 py27_0) 生成,用于连接到 Amazon S3。 Scrapy 默认不启用此功能。

    如果您只是浏览本教程,并且除了按照指示执行的操作外没有做任何其他操作,则可能是配置问题。使用命令中的 shell 参数启动 Scrapy 仍将使用配置和关联的设置文件。默认情况下,Scrapy 会查找:

    1. /etc/scrapy.cfgc:\scrapy\scrapy.cfg(系统范围),
    2. ~/.config/scrapy.cfg ($XDG_CONFIG_HOME) 和 ~/.scrapy.cfg ($HOME) 用于全局(用户范围)设置,以及
    3. scrapy.cfg 在 scrapy 项目的根目录中(请参阅下一节)。

    编辑: 作为对 cme​​ts 的回复,当存在boto (bug here) 时,这似乎是 Scrapy 的一个错误。

    响应“如何禁用下载处理程序”,将以下内容添加到您的 settings.py 文件中:

    DOWNLOAD_HANDLERS : {
        's3': None,
    }
    

    您的settings.py 文件应该位于您的 Scrapy 项目文件夹的根目录中(比您的 scrapy.cfg 文件深一层)。

    如果您的 settings.py 文件中已经有 DOWNLOAD_HANDLERS,只需为 's3' 添加一个具有 None 值的新条目。

    编辑 2: 我强烈建议您为您的项目设置虚拟环境。查看virtualenv,它的用法。不管这个项目使用什么包,我都会提出这个建议,但是对于你的极端数量的包,我会加倍如此。

    【讨论】:

    • 我现在只是在浏览教程。那么如何启用boto呢?
    • 已经是了。在您的代码中,Scrapy 正在尝试使用 Amazon S3 做某事。根据抛出异常的位置,它看起来像是一个扩展。不过,您应该知道什么,在哪里。如果没有,您很可能使用了您不应该使用的设置/配置文件(请参阅我的回答)。
    • 我使用的唯一代码行是scrapy shell &lt;url&gt;。我搜索了 scrapy.cfg,这就是文件中的内容:# Automatically created by: scrapy startproject # # For more information about the [deploy] section see: # https://scrapyd.readthedocs.org/en/latest/deploy.html [settings] default = ${project_name}.settings [deploy] #url = http://localhost:6800/ project = ${project_name}
    • 根据这个:github.com/scrapy/scrapy/issues/1344,我需要设置这个:DOWNLOAD_HANDLERS : {'s3': None}。知道如何访问它吗?
    • 更新了答案以包含您的评论及其相关信息。
    【解决方案2】:

    也许您应该使用双引号 (") 而不是单引号 (')。

    我的 Python 版本是 win32 上的 2.7.10。 Scrapy 版本是 1.0.3。

    【讨论】:

    • 在哪里加双引号?在 DOS 框上的命令中?这不会有任何影响。
    • 为什么双引号与单引号的结果不同?
    猜你喜欢
    • 2019-02-08
    • 1970-01-01
    • 2023-02-26
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 2015-03-29
    • 2018-05-04
    相关资源
    最近更新 更多