正则表达式 - python re.sub替换不成功
黄舟
黄舟 2017-04-18 10:12:11
0
2
503

我在学习爬虫的时候想把里面的标签去掉,但是使用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 '<p class="abstract">' in word:
                newword = re.sub(r'<p class="abstract">','\n',word)
                print(newword)
        else:
                print(word)

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(2)
黄舟
In [19]: type(word)
Out[19]: bs4.element.Tag

J'ai trouvé la raison, le mot n'est pas une chaîne.

黄舟

L'objet chaîne p ne contient pas la méthode "sub" :

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

Écrivez un court morceau de code pour la référence du sujet :

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]:
'''
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!