タグ

pythonとencodingに関するclavierのブックマーク (3)

  • Pythonのrequestsモジュールでの文字コード対策 - かんちゃんの備忘録

    【Webスクレイピング Advent Calendar 2017 4日目の記事です。】 Pythonrequestsモジュールは、 「Requestsは、人が使いやすいように設計されていて、Pythonで書かれている Apache2 Licensed ベースのHTTPライブラリです。」 と公式サイト1文目に記述されているほど、扱いやすいHTTPライブラリです。 そんなrequestsモジュールですが、日HTMLを対象に取得する際に文字化けを起こすことがしばしばあります。 その対策や原因について備忘録としてまとめます。 対策まとめ モジュールのバージョンなど レスポンスヘッダに文字エンコード情報がないため起こる文字化け 文字化けの原因 対策 大量のページをダウンロードするときは、cChardet BeautifulSoupと組み合わせて使う まとめ 参考にしたサイト 対策まとめ req

    Pythonのrequestsモジュールでの文字コード対策 - かんちゃんの備忘録
  • python2.xでの日本語(マルチバイト文字)問題を一掃する!(その1) — ExSoft

    python2.xを使い始めて、必ずと言って良いほど遭遇するのが日語(マルチバイト)関連の問題です。 ネットで同様のケースを調べて、あまり理解をせずに、対処療法的にその場の問題を回避している人も多いように思いますが、一度腰を据えて理解すれば、それほど難しくないですし、python以外の言語にも応用ができます。 マルチバイト問題については、概念だけではなく、実際に手を動かし、目で確かめる(文字コードそのものを見る)事が重要です。 今回は、python2.xで遭遇する文字コード関連のエラーを実際に発生させ、その理由を理解した上で対処を行ってみましょう。 文字コードの定義 ケース1 [ 再現 ] pythonスクリプトファイルのencodingをcp932にし、以下を記述します。 ustr = u'い' [ 現象 ] SyntaxError: Non-ASCII character '\x8

  • PythonのUnicodeEncodeErrorを知る - HDEラボ

    Pythonにはじめて触って、いつのまにか1年が過ぎたのですが、一番はまったのは、やっぱりunicodeの扱いだったと思います。 特に、 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-12: ordinal not in range(128) のようなエラーにはさんざん悩まされました。ここがたとえばrubyなど他の言語と比べてわかりにくいために、Pythonが取っつきにくい言語になっているのではないか、と個人的には思います。 そこで、このエラーに関係するはまりどころとTipsをいくつか列挙してみました。これからPythonに触れられる方の参考になればと思います。 なお、環境はUNIX上のPython 2.4, 2.5を想定しています。 u1はunicode型で、s1はstr型です。s1にどのよ

  • 1