【问题标题】:Remove certain words from URL从 URL 中删除某些字词
【发布时间】:2022-02-12 09:08:05
【问题描述】:

我抓取了推文状态,从中删除了某些字词;但是,它不能有效地工作,因为它只删除了“停用词”中的第一个字符串。

代码:

stopwords = ['/people', '/photo/1']
link_list = []
for link in links:
    for i in stopwords:
        remove = link.replace(i, "")
        link = remove
        link_list.append(link)

输出:

https://twitter.com/CultOfCurtis/status/1492292326051483648
https://twitter.com/ZBumblenuts/status/1492292306149560321
https://twitter.com/AndreWillemse4/status/1492292279129804806
https://twitter.com/JaimeeJakobczak/status/1492292268354584578
https://twitter.com/consequence/status/1492245783084773383/photo/1
https://twitter.com/consequence/status/1492245783084773383
https://twitter.com/EVStyle2/status/1492292266169298944
https://twitter.com/SammyMorgan/status/1492292246766436355
https://twitter.com/gayesian/status/1492292246456184841
https://twitter.com/khendriix_/status/1492292245734707202
https://twitter.com/Mauro_Sosa_S/status/1492292242320539650

我在研究后尝试了不同的代码,但无济于事。 :/

【问题讨论】:

    标签: python


    【解决方案1】:

    你只需要在最后一行取消缩进:

    stopwords = ['/people', '/photo/1']
    link_list = []
    for link in links:
        for i in stopwords:
            remove = link.replace(i, "")
            link = remove
        link_list.append(link) 
    

    在其原始位置,它会附加删除/people 但在删除/photo/1 之前的链接。然后它会再次附加 /photo/1 删除。

    您也可以应用 this suggestion here 并使用已编译的正则表达式:

    import re
    
    stopwords = ['/people', '/photo/1']
    pattern = re.compile('|'.join(map(re.escape, stopwords)))
    link_list = [pattern.sub('', link) for link in links]
    

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 2018-11-03
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多