2016-05-05 3 views
0

私は応答内の文字列を検索することができません。urlibから.read()を実行した後に、urlib .read()内のデータを見つける

response = urlopen(req).read() 
    if str(response).find(someString) != -1 : 
     print ("Success") 
    else: 
     print ("Fail") 

を使用して

私はいつも失敗し得ます。

私はいつも私がプリントSTR(応答)を実行したとき、私は、文字列が存在するかどうかを見たりないので、私ができ成功

を得る:someString場合はSTR(応答)で標準 を使用して

どちらの機能も正しく動作していないことを確認してください。 Pythonは、文字列検索の場合と比べて.read()レスポンスを印刷とは別に扱いますか?もしそうなら、.read()でレスポンスを検索するために何を使うべきですか?

答えて

0

私は最終的にurllibの他の問題を調べて答えを見つけました。

バイト形式で返される.read()関数に問題が発生します。ですから、検索するためにはエンコードを変更する必要があります。受信中のヘッダは、それがヘッダから引っ張っての代わりに指定することができ、その後の文字セットが含まれていなかった場合は

response = urlopen(req) 
out = response.read().decode(response.headers.get_content_charset()) 

if out.find(someString) != -1: 
    print ("Success") 
else: 
    print ("Fail") 

:以来、私はいつも読んでいたデータは、私は、次のコードを使用する文字セットを返します。私は現在、標準if someString in out:形式にも切り替えることができます。

関連する問題