回答編集履歴
1
Pythonコード追加
answer
CHANGED
@@ -4,8 +4,19 @@
|
|
4
4
|
この`0xbb`は、バイトオーダーといって、BOM付きのファイルなどを読み込んだりすると出力されます。
|
5
5
|
BOM以外にもNULL文字(\0)もかなり危険です。
|
6
6
|
|
7
|
-
普通はこのような制御文字コード(`[\x00-\x1f\x7f]`)は危険なので、削除してからMecabで解析してみてはいかがでしょうか。
|
7
|
+
普通はこのような制御文字コード(`[\x00-\x1f\x7f]`)は危険なので、`reモジュール`の正規表現を使って削除してからMecabで解析してみてはいかがでしょうか。
|
8
8
|
|
9
|
+
```python
|
10
|
+
#HTML文字列から制御コードを削除
|
11
|
+
text = re.sub(r'[\x00-\x1f\x7f]+', '', text)
|
12
|
+
|
13
|
+
#BOMを消すだけなら、下記のようにデコード→エンコードしてもOKです
|
14
|
+
text = text.decode('utf_8_sig').encode('utf-8')
|
15
|
+
```
|
16
|
+
|
17
|
+
[http://docs.python.jp/3.6/library/re.html#re.sub](http://docs.python.jp/3.6/library/re.html#re.sub)
|
18
|
+
[http://docs.python.jp/3.6/library/stdtypes.html#str.encode](http://docs.python.jp/3.6/library/stdtypes.html#str.encode)
|
19
|
+
|
9
20
|
ただし、`<pre>...</pre>`のHTMLコードは改行が抜けると表示も崩れるので、HTMLをスクレイピングしたい場合は注意してください。
|
10
21
|
|
11
22
|
また、対象のWebサイトが不特定多数なのであれば、文字コードの問題もでてくると思われます。
|