私はpythonを使用していて、module == 2.18.4をリクエストしています
リクエストで一部のデータをクロールしている間、デバッグにロギングモジュールを使用しました。
ログを次のように表示します。
[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
しかし、私はこれを取得します:
[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
[DEBUG] 2018-01-25 03:15:36,974 EUC-JP Japanese prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:36,990 EUC-KR Korean prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:36,994 CP949 Korean prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:37,009 EUC-TW Taiwan prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:37,036 utf-8 not active
[DEBUG] 2018-01-25 03:15:37,036 SHIFT_JIS Japanese confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,036 EUC-JP not active
[DEBUG] 2018-01-25 03:15:37,036 GB2312 Chinese confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,036 EUC-KR not active
[DEBUG] 2018-01-25 03:15:37,036 CP949 not active
[DEBUG] 2018-01-25 03:15:37,036 Big5 Chinese confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,036 EUC-TW not active
[DEBUG] 2018-01-25 03:15:37,036 windows-1251 Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 KOI8-R Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 ISO-8859-5 Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 MacCyrillic Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 IBM866 Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 IBM855 Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 ISO-8859-7 Greek confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 windows-1253 Greek confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 ISO-8859-5 Bulgairan confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 windows-1251 Bulgarian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 TIS-620 Thai confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 ISO-8859-9 Turkish confidence = 0.47949350706
[DEBUG] 2018-01-25 03:15:37,038 windows-1255 Hebrew confidence = 0.0
[DEBUG] 2018-01-25 03:15:37,038 windows-1255 Hebrew confidence = 0.0
[DEBUG] 2018-01-25 03:15:37,038 windows-1255 Hebrew confidence = 0.0
...
ログにそのエンコードを入れたくありません。どうすればそれらを削除できますか?
モジュールのログレベルを設定してみてくださいchardet.charsetprober
DEBUGよりも高い値(例:INFO)。
logger = logging.getLogger('chardet.charsetprober')
logger.setLevel(logging.INFO)
私は同じ問題を抱えていて、これらの余分なログが chardet.charsetprober
モジュールから来ているのを見つけました。
これらのログを抑制するには、インポート後にこれを配置します。
logging.getLogger('chardet.charsetprober').setLevel(logging.INFO)
これにより、 chardet.charsetprober
モジュールからのDEBUG
レベルのメッセージは出力されず、必要なログメッセージのみが表示されます。
それが役に立てば幸い!
response.content.decode('ISO-8859-1')
ミックス文字セットのデコード用に設定し、私のために働いた
この問題はr.text
(返されたtext
のresponse
属性)と関係があると思います。 requests
は特定のエンコーディングを知らないので、ちょっと試してみる必要があり、長いリストがログに記録されます。これを回避するには、r.encoding='utf-8'
にアクセスする前に、ログレベルを高く設定するか(INFO
など)、エンコーディング(r.text
など)を指定します。
私があなたの質問を正しく理解しているかどうかわからないのですが、なぜこのメッセージを別のログレベルに分けられないのですか。