使用Python的Scrapy时出现错误

3

我一直在尝试使用Scrapy来爬取网站,但每次运行时都遇到一些问题。当我在命令行中运行时

scrapy crawl [FILE]

我收到了一堆以

开头的错误信息。
Traceback (most recent call last):
File "C:\Users\lib\site-packages\boto\utils.py", line 210, in     r
etry_url
r = opener.open(req, timeout=timeout)
File "C:\Users\lib\urllib2.py", line 431, in open
  response = self._open(req, data)
File "C:\Users\lib\urllib2.py", line 449, in _open
  '_open', req)
File "C:\Users\lib\urllib2.py", line 409, in _call_chain
  result = func(*args)
File "C:\Users\lib\urllib2.py", line 1227, in http_open
   return self.do_open(httplib.HTTPConnection, req)
File "C:\Users\lib\urllib2.py", line 1197, in do_open
  raise URLError(err)
URLError: <urlopen error timed out>
2015-08-06 14:50:49 [boto] ERROR: Unable to read instance data, giving up

我到底为什么无法运行Scrapy呢?

编辑 我在Stack Overflow上查找并更改了一些设置,似乎消除了一个错误,但这些错误仍然存在。 我尝试运行scrapy shell,但它也给出了错误信息,我认为这些错误与我当前收到的错误有关。

2015-08-08 15:08:27 [scrapy] INFO: Scrapy 1.0.1 started (bot: scrapybot)
2015-08-08 15:08:27 [scrapy] INFO: Optional features available: ssl, http11, bot
o
2015-08-08 15:08:27 [scrapy] INFO: Overridden settings:     {'LOGSTATS_INTERVAL': 0}

2015-08-08 15:08:27 [scrapy] INFO: Enabled extensions: CloseSpider,       TelnetConsol
e, CoreStats, SpiderState
2015-08-08 15:08:28 [boto] DEBUG: Retrieving credentials from metadata server.
2015-08-08 15:08:29 [boto] ERROR: Caught exception reading instance data
Traceback (most recent call last):
File "C:\Users\lib\site-packages\boto\utils.py", line 210, in     retry_url
    r = opener.open(req, timeout=timeout)
File "C:\Users\lib\urllib2.py", line 431, in open
    response = self._open(req, data)
File "C:\Users\lib\urllib2.py", line 449, in _open
'_open', req)
File "C:\Users\lib\urllib2.py", line 409, in _call_chain
  result = func(*args)
File "C:\Users\lib\urllib2.py", line 1227, in http_open
  return self.do_open(httplib.HTTPConnection, req)
File "C:\Users\lib\urllib2.py", line 1197, in do_open
  raise URLError(err)
URLError: <urlopen error timed out>
2015-08-08 15:08:29 [boto] ERROR: Unable to read instance data, giving up
2015-08-08 15:08:29 [scrapy] INFO: Enabled downloader middlewares:     HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware,   RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware, HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddleware, ChunkedTransferMiddleware, DownloaderStats
2015-08-08 15:08:29 [scrapy] INFO: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware
2015-08-08 15:08:29 [scrapy] INFO: Enabled item pipelines:
2015-08-08 15:08:29 [scrapy] DEBUG: Telnet console listening on 127.0.0.1:6023

这个问题的任何答案有帮助吗?https://dev59.com/Znvaa4cB1Zd3GeqPF6Zy - jah
不是真的。它给我留下了这个错误是由boto中的某些东西引起的印象,但我不知道是什么引起的。 - David Yi
在以下网址找到答案:https://dev59.com/Y4zda4cB1Zd3GeqPlVkM#v7nmnYgBc1ULPQZFaqEG - David Yi
3个回答

3
尝试通过在文件~/your_project/settings.py中添加以下行来禁用S3处理程序:
DOWNLOAD_HANDLERS = {'s3': None}

1
看起来你的程序因为同一网站页面请求过于频繁而超时。尝试设置下载页面之间的延迟。
查看Scrapy文档中的下载延迟

无论我尝试哪个站点都不起作用。我尝试使用其他人的代码,但仍然出现了这个错误。 - David Yi

1
可能是因为Python使用了系统设置的代理。要禁用它,您可以进行以下更改:
导入os

os.environ['http_proxy']=''


我只需要在我的代码之前添加这两行代码吗? - David Yi
你能提供你的代码片段吗?这样可能就可以构建出解决方案了。 - Vasim
我使用了Scrapy提供的教程,但仍然出现错误。http://doc.scrapy.org/en/latest/intro/tutorial.html。当我运行“scrapy crawl dmoz”时,错误就出现了。 - David Yi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接