2017-07-07 16 views
0

ウェブサイトからの治療でテキストを取得したい。これはサンプルコードです:スクラブを使用してデータをクロールする際にシンボルを削除する

def parse(self, response): 
     for kamusset in response.css("div#d1"): 
      text = kamusset.css("div b::text").extract() 
      print(dict(text=text)) 

これが結果です: '' enter image description here

私は削除したいです記号とすべての数字記号。だから、私は正規表現を使用します。私は私のコード変更:

def parse(self, response): 
     for kamusset in response.css("div#d1"): 
      text = kamusset.css("div b::text").re(r'[a-z]+') 
      print(dict(text=text)) 

をしかし、結果は次のとおりです。enter image description here

私はそのような結果を期待してはいけません。私はこのようになりたい:

{'text':['abadi'、 'mengabadi'、 'mengabadikan'、 'pengabadian'、 'keabadian']}どうやってするか?あなたはtextからあなたを解析することができます

答えて

1

reで掻き取っ:

import re 
text = ['aba.di','meng.a.ba.di','megn.a.ba.di.kan','1','2','peng.a.ba.di.an','ke.a.ba.di.an','1','2'] 
stack = [re.sub('[^a-zA-Z]+', '', e) for e in text] 
text_new = [i for i in stack if i!=""] 
print(text_new) 

text_newは次のようになります。

['abadi', 'mengabadi', 'megnabadikan', 'pengabadian', 'keabadian'] 
関連する問題