回答編集履歴
1
一部修正+説明追加
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
- requestsで返ってくるのは機械語に近いデータであり、それをbeautifulsoupの変換によってhtmlに直されているみたいなイメージかなと思いました。
|
2
2
|
|
3
3
|
違います。
|
4
|
-
requests.contents
|
4
|
+
requests.getの戻り値のcontents属性がhtmlです。ただし、utf8でdecodeしないと、日本語フォントで表示できないだけです。以下を見てください。
|
5
5
|
|
6
6
|
```python
|
7
7
|
>>> aiueo_encoded = 'あいうえお'.encode()
|
@@ -13,5 +13,8 @@
|
|
13
13
|
|
14
14
|
encodeとdecodeについては、[公式ドキュメント Unicode HOWTO](https://docs.python.org/ja/3/howto/unicode.html)をお読みください。
|
15
15
|
|
16
|
+
requests.getの戻り値のtext属性はdecodeしたhtmlになるのですが、scriptが含まれている場合などにdecodeに失敗する場合があるようです。
|
17
|
+
そのため、日本語のhtmlをdecodeする場合は、text属性を使うよりも、contents属性をBeautifulSoupに渡してBeautifulSoupでdecodeさせたほうが良いとされています。
|
16
18
|
|
17
19
|
|
20
|
+
|