【问题标题】:Error when using scrapy for Python在 Python 中使用 scrapy 时出错
【发布时间】:2015-08-06 19:04:55
【问题描述】:

我一直在尝试运行 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?

编辑 我环顾了一下stackoverflow并稍微更改了我的设置,这似乎摆脱了一个错误,但这些错误仍然存​​在。 我尝试运行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

【问题讨论】:

标签: python web-scraping scrapy scrapy-spider


【解决方案1】:

尝试通过将以下行添加到文件 ~/your_project/settings.py 来禁用 S3 处理程序:

DOWNLOAD_HANDLERS = {'s3': None}

【讨论】:

    【解决方案2】:

    您的程序似乎由于来自同一站点的页面的频繁请求过多而超时。尝试设置下载页面之间的延迟。

    查看Scrapy documentation for download delay

    【讨论】:

    • 它不适用于我尝试的任何网站。我试图使用其他人的代码,它仍然给了我这个错误。
    【解决方案3】:

    这可能是由于python使用了系统集代理。要禁用它,您可以进行以下更改:

    导入操作系统

    os.environ['http_proxy']=''

    【讨论】:

    • 我是在自己的代码之前添加这两行代码吗?
    • 你会提供你的代码 sn-p 吗?以便制定可能的解决方案
    • 我用了scrapy提供的教程,还是报错。 doc.scrapy.org/en/latest/intro/tutorial.html。当我运行“scrapy crawl dmoz”时,出现错误。
    猜你喜欢
    • 2020-11-10
    • 2022-10-26
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 2016-06-24
    相关资源
    最近更新 更多