2015-07-05 4 views
10

Ich bin neu in Python und möchte Scrapy verwenden, um einen Web-Crawler zu erstellen. Ich gehe durch das Tutorial in http://blog.siliconstraits.vn/building-web-crawler-scrapy/. Spider-Code mag folgende:Scrapy Crawler erwischt Ausnahme lesen Instanz Daten

from scrapy.spider   import BaseSpider 
from scrapy.selector   import HtmlXPathSelector 
from nettuts.items  import NettutsItem 
from scrapy.http  import Request 

class MySpider(BaseSpider): 
    name   = "nettuts" 
    allowed_domains = ["net.tutsplus.com"] 
    start_urls = ["http://net.tutsplus.com/"] 

def parse(self, response): 
    hxs  = HtmlXPathSelector(response) 
    titles  = hxs.select('//h1[@class="post_title"]/a/text()').extract() 
    for title in titles: 
     item = NettutsItem() 
     item["title"] = title 
     yield item 

Wenn starten Sie die Spinne mit Befehlszeile: scrapy Crawl nettus hat es Fehler folgende:

[boto] DEBUG: Retrieving credentials from metadata server. 
2015-07-05 18:27:17 [boto] ERROR: Caught exception reading instance data 

Traceback (most recent call last): 
    File "/anaconda/lib/python2.7/site-packages/boto/utils.py", line 210, in retry_url 
    r = opener.open(req, timeout=timeout) 

File "/anaconda/lib/python2.7/urllib2.py", line 431, in open 
response = self._open(req, data) 

File "/anaconda/lib/python2.7/urllib2.py", line 449, in _open 
'_open', req) 

File "/anaconda/lib/python2.7/urllib2.py", line 409, in _call_chain 
result = func(*args) 

File "/anaconda/lib/python2.7/urllib2.py", line 1227, in http_open 
return self.do_open(httplib.HTTPConnection, req) 

File "/anaconda/lib/python2.7/urllib2.py", line 1197, in do_open 
raise URLError(err) 

URLError: <urlopen error [Errno 65] No route to host> 
2015-07-05 18:27:17 [boto] ERROR: Unable to read instance data, giving up 

wirklich nicht wissen, was los ist. Hoffe jemand

+0

Ist das die vollständige Rückverfolgung (Ich vermute, es ist nicht)/ – CrazyCasta

Antwort

28

in der settings.py Datei: Fügen Sie folgenden Code-Einstellungen:

DOWNLOAD_HANDLERS = { 's3': Keine,}

+0

Wo ist das dokumentiert? – gusridd

+3

Kann mir jemand erklären, was hier schief läuft? und wie hat die Antwort es behoben? –

+0

Es hat nicht für mich funktioniert. – AnovaConsultancy

0

Die wichtigen Informationen sind helfen könnte:

URLError: <urlopen error [Errno 65] No route to host> 

Dass Sie versucht zu sagen, dass Ihr Computer nicht weiß, wie mit der Website kommunizieren Sie zu kratzen sind versucht zu. Können Sie von dem Computer, auf dem Sie dieses Python ausführen möchten, normal auf die Website zugreifen (z. B. in einem Webbrowser)?

+0

ja, Ich könnte normalerweise auf die Seite zugreifen – printemp

+0

Nun, ich bin mir nicht sicher, wie ich Ihnen weiterhelfen kann. Alles, was ich sagen kann, ist, dass "No route to host" ein Netzwerkproblem ist, das Ihnen mitteilt, dass das Betriebssystem nicht weiß, wie Pakete an die IP-Adresse gesendet werden, an die Pakete gesendet werden sollen. – CrazyCasta

+0

ok, danke trotzdem. Ich versuche, mehr zu finden. – printemp