44

この記事は最終更新日から3年以上が経過しています。

@nittyan

Requestsで日本語を扱うときの文字化けを直す

環境

Python: 3.5
Requests: 2.11.1

概要

Requestsを使って日本語ページを取得したときに表示すると文字化けが起こる。
今回、自分の場合はページ側のエンコードがShift-JISの場合に起こっていた。

import requests

response = requests.get('適当な日本語ページ')
print(response.encoding)

で調べると、ISO-8859-1が返ってきていた。
どうも、文字コードがうまく取れてない場合に適当にかえしてる??

解決

import requests

response = requests.get('適当な日本語ページ')
response.encoding = response.apparent_encoding  # この行を追加

apparent_encodingを呼び出すと、どうやらライブラリ使って、ちゃんと文字コードを判定するらしい。
今回の場合は、これで文字化けしなくなった。

参考

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
nittyan
Pythonが好きです。Pythonで仕事してません。 仕事で使えるであろうレベルの言語は、Java、Python。
この記事は以下の記事からリンクされています

コメント

@nittyan さん、こんにちは! 文字化けの対処方法がわからずTeratailで質問したときにこのページを紹介してもらってすごく助かりました!
ありがとうございました:hibiscus:
https://teratail.com/questions/152505

0

@Yukiya025 お役に立てたのならよかったです。
けっこう昔の記事なんですが、ちょこちょこ「いいね」もらうんで、みんな困ってるんですかね・・・

0

nittyanさん
はい、困ってましたf^^; 文字化けしてたら取れるものも取れませんし:thinking:
ちなみに完成したスクレイピングコードはこちらです:sparkles:
O'Reilly Japanの書籍カタログをCSVファイルに出力します:books:
https://github.com/Yukiya025/CommerceScraper

0
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Azure IoTに関する記事を投稿しよう!
~
Qiita 10周年記念イベント - 10年前の自分に伝えたい、勉強しておきたかった技術
~