Frage

Ich versuche, einen Text daran zu übergeben Lesbarkeitsapi Like SO:

text = 'this reminds me of the Dutch 2001a caravan full of smoky people Auld Lang Syne'
# construct Readability Metrics API url
request_url = 'http://ipeirotis.appspot.com/readability/GetReadabilityScores?format=json&text=%s' % text
request_url = urllib.quote_plus(request_url.encode('utf-8'))
# make request
j = json.load(urllib.urlopen(request_url))

Ich erhalte diesen Fehler in der letzten Zeile jedoch:

Errno 2] Keine solche Datei oder Verzeichnis: 'http://ipeirotis.appspot.com/readability/getreadabilityscores?format=json&text=this+Reminds+Me+OF+Die+Dutch+2001a+Caravan+Full+of+Smoky +Menschen+Auld+Lang+Syne '

Die URL im Fehler ist jedoch gültig und gibt eine Antwort zurück, wenn Sie sie besuchen. Wie codiere ich die URL, damit ich Urlopen verwenden kann? Danke vielmals.

War es hilfreich?

Lösung

Sie zitieren die vollständige URL, einschließlich des http: // und was nicht. Wenn Sie versuchen, den eigentlichen Wert von Request_url zu drucken, erhalten Sie

>>> print request_url
http%3A%2F%2Fipeirotis.appspot.com%2Freadability%2FGetReadabilityScores%3Fformat
%3Djson%26text%3Dthis+reminds+me+of+the+Dutch+2001a+caravan+full+of+smoky+people
+Auld+Lang+Syne

Welches ist nicht das, was Sie wollen. Sie möchten nur die Teile zitieren, die Sie für die Website ein einzelnes Argument sein möchten. Ich habe Folgendes ausprobiert und es schien zu funktionieren:

text = 'this reminds me of the Dutch 2001a caravan full of smoky people Auld Lang Syne'
# construct Readability Metrics API url
request_url = 'http://ipeirotis.appspot.com/readability/GetReadabilityScores?format=json&text=%s' % urllib.quote_plus(text.encode('utf-8'))
# make request
j = json.load(urllib.urlopen(request_url))

Andere Tipps

Verwenden Sie Urllib.urlencode, um nur die Abfragezeichenfolge zu codieren, wie so:

request_url = 'http://ipeirotis.appspot.com/readability/GetReadabilityScores?%s' % urllib.urlencode({'format': 'json', 'text': text})

Wenn Sie die gesamte URL codieren, werden die Schrägstriche und Kolons codiert, und Sie möchten, dass diese nicht kodiert bleiben, damit sie als URL ordnungsgemäß analysiert werden (und nicht für eine lokale Datei verwechselt).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top