質問

私はこれにいくつかのテキストを渡そうとしています 読みやすさAPI そのようです:

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))

ただし、最後の行でこのエラーが発生します。

errno 2]そのようなファイルやディレクトリはありません: 'http://ipeirotis.appspot.com/readability/getReadabilityScores?format=json&text = this+remindsme+ fur+the+dutch+2001a+caravan+full+ of+smoky +人+auld+lang+syne '

ただし、エラーのURLは有効であり、アクセスすると応答を返します。 URLOPENを使用できるようにURLをエンコードするにはどうすればよいですか?どうもありがとう。

役に立ちましたか?

解決

http://を含む完全なURLを引用しています。 request_urlの実際の値を印刷しようとすると、

>>> 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

それはあなたが望むものではありません。あなたは、あなたがウェブサイトに単一の引数になりたい部分を引用したいだけです。私は次のことを試しましたが、それはうまくいくようでした:

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))

他のヒント

urllib.urlencodeを使用して、クエリ文字列のみをエンコードします。

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

URL全体をエンコードすると、スラッシュとコロンがエンコードされ、それらがEncodedのままであるようにして、URLとして適切に解析されます(ローカルファイルと間違えられません)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top