質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.78%

python requestsで取得したtextが文字化けする

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 196

blendegg

score 54

概要

requestsで取得した文字が文字化けします。大抵のサイトは大丈夫なのですが、特定のアダルトサイトなどで文字化けます、

調べた解決法として文字コードをセットする方法と、apparent_encodingで文字コードを自動判定する方法を試しましたが、改善はありません。

コード1

URL = 'url' 
data = requests.get(URL)
data.encoding = 'UTF-8'
print(data.text)

コード2

URL = 'url' 
data = requests.get(URL)
data.encording = data.apparent_encoding
print(data.text)

知りたいこと

1他の手段はありますか?
2そもそも、原因を特定する方法はありますか?

よろしくおねがいします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • hayataka2049

    2019/06/03 10:19

    質問文でdata.encordingってなっているのはタイプミスですか?

    キャンセル

  • hayataka2049

    2019/06/03 10:23

    あ、たしかに規約に引っかかりますね。URLはコメント編集して消しておいた方が良いかもしれません。というか貼らせてしまってごめんなさい。

    キャンセル

  • blendegg

    2019/06/03 10:43

    削除依頼出しました。すみません。

    encodingはミスです。正しい記述でも文字バケは発生します。

    キャンセル

回答 1

checkベストアンサー

0

2そもそも、原因を特定する方法はありますか?

HTMLのソースを開けば、一例ですが

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

のような記述があるので、指定している文字コードがcharset=...の部分と食い違っていたらサイトのソース通りのものにすれば改善される場合があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/03 11:59

    回答ありがとうございます。以下が文字バケ部分です。例のサイトのトップページ部分です。サイトにリンクせずにサイト名だけいえばよかったですね。
    文字数が多すぎてすべて貼れないので、上部だけです。

    �L��9�ڭ��d k���iwo_=\�E╝L�QEU1HB�DD 4��_��c{4�3�
    �f�0��Wp��daq{�� �Xl
    XT$3n�'�M�&����O܉@>�s�cv����{��═�L�[,��۔��� h��)mA�p�~�═o��`�|�E
    �8 ~ԍ���C�5�U�L^�'�w�Ic��l║����N�T��O�)JX���QF�E��%��C"�� ��╚@�
    &ݨ���/�H�� 3����
    oC�m�d���3킗I��k5��aJ]��jq+k�A ���v9&�hf�G��@AR
    ��"�q�╚@�AP�(������mΡ��k���p��^k����[�H�.���n�d�k��+���\�j�
    ╗��b0���j�O��/�/A�����w�W�]V�Y��ſ��ޞ����=?�Xz����8��|�酟tC�g
    �aLE�
    F2�� �3;��7I���(UkK�nt��š�ͻM/I�^(��M�p2�����A�\�n%�{wt����0?�
    - =W��%eF��Y�%|�uZ�o��&╗ٔ����D-��h3���W_$�kކ���E�[ ������:Rٍ
    ��H
    hɸ�� �`��T����ڵY�5`����4�v�^���VM#?̀d�C���-�Y������c�
    ]&�� ��)�)v��Ĭu��╝�w
    ��䛙����"╝PTI╔║JR��║�t
    �rv=������ʽ�q�╗║Ş�u�ɧ^
    �0jA:�]8P@�( |�c�(� ��ue{��nzWqö�%z�Ng�Q�s�ݏ.WLǗ��r-Sz�*~;ْ~����0�.�C
    ╝ �G~║?��~qc�═X�M��B��>���DZB˵ͧ�n��a�Qr��^�ӡg�C���6��W� ��ɔ╝�ArN��
    J��[&q��'�5���k�s�M�I��*�_!�*)�6�╝ )E�ڃ��═�A]║@�տ
    ,�� �.����:� ��
    %��h/��͟�o�
    fZ�2�d`�[��'�ݴs�'�O��r���'�@:P��X�����G��[�LL���=���
    �W?f�WG�w"�w�z�@f��o�fv��$4�2�
    1��Α��d���b�9U����]7 ؁}�[�p����a|=��%U�r�g[Ɣ�4?t�_!�A$�;|�WA���Ⓩ
    ��Tfk?��&2�KJ4Q═9>�\kL�u�NQ�s?gf�o�b�OAUl��(,���A
    �9y��=p��Z����!��G'�
    ;qPj�X�*/T͜8n%═�Ы���3c�+�nS╝��"�i�?)�ʖŠr%��r[��r�����`�l���A�kGY�� ╔
    Ro4�J�JB�$ݡ"�e�@�!7�═�������|��/�,}��EO⛟?p
    W�.*�i��h
    k��V�'ĮR�u?��y���D@VE�� ╝\��c-�n�?oOlxOt���P�m ��)��#��.)���xb��k
    �z�� � ]��� t!��?�/�7���� 2~b��?|� �;�(�7���h*║�S�����╗�����Q
    �,��Ӊ�9�;_����x5,7+��߲�ķ �JP ╔Qe�P颃d
    u�,�I$���0ek��6[���<W�ɶ��@���_?�a=��Y�� !gy���G��Y������fqd�ħ╔�ޣ
    �║���v(�o��wA�h��A�=�#֍g�ڎ�Z�DJ�d*�䓉�P�=�LD�╚(ٙ�]����h═� z��╗��

    キャンセル

  • 2019/06/03 13:15

    data = requests.get(URL, headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; NP06; rv:11.0) like Gecko"})
    に書き換えると取れます。ちなみに、こうしなかった場合に返っているのはJPEG画像のデータです。
    今回はこれ以上の説明は一切避けたいと思います。こういうこともある、ということで・・・

    キャンセル

  • 2019/06/03 15:39

    弾かれているから偽装したということでしょうか?
    ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る