我使用Beautiful Soup来阅读HTML数据。阅读后我想删除一些锚标签。这是我的代码:
import urllib
from bs4 import BeautifulSoup
url=raw_input("enter url:")
html=urllib.urlopen(url).read()
soup=BeautifulSoup(html)
tags=soup('a')
标签的输出格式为:
[<a href="https://www.naukri.com/psu-government-jobs" target="_blank"
title="Govt. Jobs">Govt. Jobs</a>,
<a href="https://www.naukri.com/international-jobs" target="_blank"
title="International Jobs">International Jobs</a>,
<a href="https://www.naukri.com/top-company-jobs" target="_blank"
title="Jobs by Company">Jobs by Company</a>,
<a href="https://www.naukri.com/jobs-by-category" target="_blank"
title="Jobs by Category">Jobs by Category</a>,
<a href="https://www.naukri.com/top-jobs-by-designations" target="_blank"
title="Jobs by Designation">Jobs by Designation</a>,
<a target="_blank">Information</a>,
<a href="https://www.naukri.com/jobs-by-location" target="_blank"
title="Jobs by Location">Jobs by Location</a>,
<a href="https://www.naukri.com/top-skill-jobs" target="_blank"
title="Jobs by Skill">Jobs by Skill</a>]
我想删除标记 p>之后出现的所有锚标记
" <a target="_blank">Information</a>"
我怎么能这样做?
答案 0 :(得分:0)
猜测标签列表中的每个元素都是str的类型,你可以这样做:
将每个元素追加到新列表中,当某个元素中包含请求的字符串时,将其插入并打破循环。
new_li = []
for tag in tags:
if "Information</a>" in tag:
new_li.append(tag)
break
else:
new_li.append(tag)
print (new_li)
您不必创建新列表,您可以通过执行以下操作来修改相同的数组:
for index in range(len(tags)):
if "Information</a>" in tags[index]:
index += 1
break
tags = tags [:index]
print (tags)
迭代列表中的每个元素,在遇到请求的字符串时中断循环,然后使用限制在相关索引中的相同列表覆盖列表。