セッションクッキーを割り当てるWebサイトからデータを取得しようとしていて、URLに追加してデータにアクセスする必要のあるクラムコードが含まれています。クラム変数にバックスラッシュが含まれていると、問題に遭遇します(HTTP 401 Unauthorized)...クラムが変数であるため、先頭にrを追加する方法を見つけることができませんでした。 .encode( 'string-escape')と.replace( '\\'、 '\\\\')をcrumb変数に追加しようとしましたが、動作させることができません。URL文字列にバックスラッシュ文字を含む変数を追加するときのPythonエラー
私のコードは、Pythonの2.7で、次のようになります。
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.open('http://www.sample.com')
#Some code here that looks for crumb code in HTML
crumb = 'abc\xyz'
#This line fails when crumb contains a backslash
opener.open('http://www.sample.com/data=' + crumb)
cj.clear()
は、誰もが、私は、バックスラッシュが含まれているURL文字列を開こうとすると401エラーを回避する方法を知っていますか?
また、複数のクラムをループする場合は、セッションのCookieを消去する必要がありますか?
更新:バックスラッシュがHTMLの\ u002Fから取り込まれていることが判明しました。 URLに文字列を追加する前にスラッシュに変換するとうまくいくと思います。文字列中の\ u002Fを/に変換するには?
'crumb = r'abc \ xyz''は十分ですか? – Nuageux
私は思う*あなたはそのスラッシュをurlencodeする必要があります。 – idjaw
[R/RCurlでバックスラッシュをURLエンコードする方法](https://stackoverflow.com/questions/26304172/how-to-url-encode-a-backslash-with-r-rcurl) – idjaw