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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1578閲覧

Pythonのrequestsが上手く使えない

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2018/04/25 08:16

編集2018/04/25 08:27

マイコード

Python

1import requests 2url = 'https://www.u-tokyo.ac.jp/index_j.html' 3r = requests.get(url) 4r.text

アウトプットの一部

'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r\n<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">\r\n<!-- Enable Cache 1418973001 : 1418973001 --><head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r\n<!--\r\n<meta http-equiv="Pragma" content="no-cache" />\r\n<meta http-equiv="Cache-Control" content="no-cache" />\r\n<meta http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT" />\r\n-->\r\n<meta http-equiv="Content-Script-Type" content="text/javascript" />\r\n<meta http-equiv="Content-Style-Type" content="text/css" />\r\n<meta name="description" content="æ\x9d±äº¬å¤§å\xad¦ã\x81®ã\x82ªã\x83\x95ã\x82£ã\x82·ã\x83£ã\x83«ã\x82µã\x82¤ã\x83\x88ã\x81§ã\x81\x99ã\x80\x82大å\xad¦æ¡\x88å\x86\x85ã\x80\x81å\xad¦é\x83¨ã\x83»å¤§å\xad¦é\x99¢ç\xad\x89ã\x81®ç´¹ä»\x8bã\x80\x81ç\xa0\x94究活å\x8b\x95ã\x83»å\x9b½é\x9a\x9bæ´»å\x8b\x95ã\x80\x81å\x85¥å\xad¦æ¡\x88å\x86\x85ç\xad\x89ã\x80\x81æ\x9d±äº¬å¤§å\xad¦ã\x81®æ\x83\x85å\xa0±ã\x82\x92ã\x81\x94覧ã\x81\x84ã\x81\x9fã\x81\xa0ã\x81\x91ã\x81¾ã\x81\x99ã\x80\x82" />\r\n<meta

この出力をメモ帳にコピーしてブラウザで開いても、明らかにうまくいっていないことがわかります。何がいけないのでしょう?

ページを開くと、\r\nとか\tとかがたくさんあります。「æ\x95\x99å\x93¡æ¤」とか文字化けみたいな感じになってます。

追記:やろうとしてることがわからないという質問があったので
与えられたURLにGETリクエストでHTMLを取得して、それをブラウザで表示するという試みです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/04/25 08:21

そもそも何をしようとしているのでしょうか?要件部分とゴールを具体的に記載してください。調べたこと、やってみたこともあわせて質問本文に追記してください。
guest

回答2

0

ベストアンサー

文字コードの問題はこれで解決します。

python

1import requests 2url = 'https://www.u-tokyo.ac.jp/index_j.html' 3r = requests.get(url) 4r.encoding = r.apparent_encoding 5r.text

参考:
Requestsで日本語を扱うときの文字化けを直す - Qiita

あとは「\r\nとか\tとか」ですが、これは改行とタブなので、別に存在していて構わないものです。
print(r.text)とすると綺麗に出力されますよ。

追記に関して

python

1with open("index.html", "w") as f: 2 f.write(r.text)

を追加するとindex.htmlができるのでそれをブラウザから開けば良いですけど、まあどんな感じかは見てのお楽しみ。

投稿2018/04/25 08:25

編集2018/04/25 08:31
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/25 08:36

初期状態ではr.encodingがISO-8859-1になっていました。 これが正しい文字コードなのかと思いきや、ご指摘の通りr.encodingをr.apparent_encodingの'utf-8'にする必要がありました。
guest

0

ただの文字コードの問題ではないでしょうか?
特に問題なく取得されているように見えます。

r.encoding = r.apparent_encoding

をついきすれば、表示も正しくなるかと

投稿2018/04/25 08:31

Yuki_S

総合スコア356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuki_S

2018/04/25 08:31

回答かぶってしまいました。すみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問