【问题标题】:Remove symbol when crawling data using scrapy使用scrapy抓取数据时删除符号
【发布时间】:2017-07-07 04:50:57
【问题描述】:

我想从网站上通过 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']}。该怎么做?

【问题讨论】:

    标签: python regex scrapy web-crawler


    【解决方案1】:

    你可以从text解析你用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']
    

    【讨论】:

      猜你喜欢
      • 2021-08-19
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多