如何从汤Python中删除锚标签

时间:2017-02-06 09:07:05

标签: python

我使用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>]

我想删除标记之后出现的所有锚标记

" <a target="_blank">Information</a>"

我怎么能这样做?

1 个答案:

答案 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)

迭代列表中的每个元素,在遇到请求的字符串时中断循环,然后使用限制在相关索引中的相同列表覆盖列表。