質問するログイン新規登録

回答編集履歴

1

Pythonコード追加

2017/09/12 16:27

投稿

Tomak
Tomak

スコア1652

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サイトが不特定多数なのであれば、文字コードの問題もでてくると思われます。