正则表达式 - python re.sub替换不成功

 儒志楼 发布于 2022-10-25 17:14

我在学习爬虫的时候想把里面的标签去掉,但是使用re.sub不成功。代码如下:

#!usr/bin/env python3
#coding:utf-8

from urllib.request import urlopen
from bs4 import BeautifulSoup
import re

html = urlopen("http://www.jianshu.com")
bsObj = BeautifulSoup(html,"lxml")
txt = bsObj.findAll("p",{"class":re.compile("abstract")})
for word in txt:
        if '

' in word: newword = re.sub(r'

','\n',word) print(newword) else: print(word)

请问这是是什么问题,谢谢!

2 个回答
  • 字符串对象p并不包含"sub"方法:

    newword = p.sub('\n', word) # -> re.sub(.....)

    写一小段代码给题主参考一下子:

    import re
    word = '<p class="abstract">AAAA<p class="abstract">bbb'
    p = '<p class="abstract">'
    newword = re.sub(p, '\n', word)
    
    '''
    Result:
    In [21]: newword
    Out[21]: '\nAAAA\nbbb'
    
    In [22]: print newword
    
    AAAA
    bbb
    
    In [23]:
    '''
    2022-10-26 23:36 回答
  • In [19]: type(word)
    Out[19]: bs4.element.Tag

    找到原因了,word不是一个字符串。

    2022-10-26 23:36 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有