2017-02-12 10 views
0

私はいくつかのXMLファイルをrequests.get経由でウェブサイトから取得しようとしています これは文字列でユーザー名とパスワードを渡す限り完全に動作します私はget_passwordを使って受け取った変数でそれらを渡そうとします。python - HTTPBasicAuthを持つrequests.getは、テキストで動作します。varのものではありません

私は、requests.getのすべてのビットをゆっくりと置き換えてすべての部分をダブルチェックしました。ユーザー名またはパスワードの部分に(またはその部分のために)varを使用するとすぐに間違っています。 2人のうちの誰も私の要求と一緒に送っていないようです。

私が得意なエラーは、ツリーには解析するコンテンツがないことです(基本的にサイトはリクエストを拒否しました)。

私は、requests.getの変数部分を使用しないとコードが機能します。

使用されるOSは、Anaconda 4.3フレームワーク(Python 3.6)と共にWindows 10です。 (注:コードネームのurl/usernameを削除しましたが、サイトではHTTPBasicAuthを使用しています:))私は紛失しているような気がします。

import requests 
from requests.auth import HTTPBasicAuth 
import xml.etree.ElementTree as ET 
from keyring import set_password 
from keyring import get_password 

a = '<url>' 

username = '<workingusernameforsite>' 
set_password('sn', username, '<verysecretpassword') 
wachtwoord = str(get_password('sn', username)) 

page = requests.get(a, auth=HTTPBasicAuth(username, wachtwoord)) 
tree = ET.fromstring(page.content) 

for element in tree.findall(".//number"): 
    print(element.text) 

答えて

0

この問題は修正されています。 anacondaはパッケージにいくつかの言及を混乱させているようだが、それはインストールされ、利用可能だが、実際に正しくインストールすることはできないという。

私は別のマシンでそれを再現しようとしましたが、キーリングパッケージが利用できないという若干異なるエラーが出ました。新しくanacondaを再インストールしようとした後、condring経由で鍵リングパッケージをインストールしようとすると、奇妙なパーミッションエラーが発生しました。

私はピップを介してキーリングをインストールしました。これで、スクリプトが完璧に動作するようになりました。私はエラーや奇妙な混乱の原因を突き止めたことはありませんが、おそらくconda/anacondaのunmet依存関係のバグです。もう一度奇妙な仮想マシンで再現しようとし、愚かなユーザーの横に問題があると判明した場合はバグをアナコンダに報告します;)

関連する問題