繁体   English   中英

使用scrapy爬行数据时删除符号

[英]Remove symbol when crawling data using scrapy

我想从网站上抓取文字。 这是示例代码:

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

结果如下: 在此处输入图片说明

我要删除“。” 符号和每个数字符号。 因此,我使用正则表达式。 我更改代码:

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))

但是结果是: 在此处输入图片说明

我不希望那样的结果。 我想要这样:

{'text':['abadi','mengabadi','mengabadikan','pengabadian','keabadian']}。 怎么做?

您可以使用re抓取的text进行解析:

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']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM