代替不在靓汤里工作

2024-04-19 01:28:03 发布

您现在位置:Python中文网/ 问答频道 /正文

这只是代码的一部分。它不会替换div和a href的值。这是一个漂亮的汤类标签

soup = BeautifulSoup(ourUrl)
dem = soup.findAll('p')
for i in range(0,len(dem)-1):
              dk = dem[i]


              if ('<div') in dk:
                   print "it here"
                   dk =dk.replace('<div','<!--')
                   dk =dk.replace('</div>','--->')
                   dem[i] = dk
for i in range(0,len(dem)-1):
              dk = dem[i]
              if ('<a href') in dk:
                   print "it here"
                   dk =dk.replace('<a href','<!--')
                   dk =dk.replace('</a>','--->')
                   dem[i] = dk

dem值如下:

^{pr2}$

dem值太大,无法输入,所以我给了您一个摘录。即使有 在


Tags: 代码indivforlenifhererange
1条回答
网友
1楼 · 发布于 2024-04-19 01:28:03

如果要用包含被替换标记的注释替换元素,请使用新的bs4.Comment()对象替换该对象:

from bs4 import Comment

for para in soup.find_all('p'):
    for div in para.find_all('div'):
        div.replace_with(Comment(unicode(div)))
    for link in para.find_all('a', href=True):
        link.replace_with(Comment(unicode(link)))

在Python中,与其使用for循环和range(),不如直接循环序列;在上面的代码中,我直接循环.find_all()结果。在

BeautifulSoup元素可能打印得好像它们只是HTML文本,但实际上它们不是字符串,而是^{} objects。不要试图把它们当作弦来对待。在

相关问题 更多 >