Как удалить элемент bs4.element.Tag в списке Python? - PullRequest
0 голосов
/ 23 марта 2019

У меня есть список Python, который

url_list = [<img src="https://test.com/temp.jpg" style="display:block"/>, <img src="https://test.com/not_temp.jpg" style="display:block"/>]

оба элемента в этом списке имеют тип 'bs4.element.Tag'.

Как удалить '<img src="https://test.com/temp.jpg" style="display:block"/>'элемент, сохраняя его тип 'bs4.element.Tag'?

, и список будет изменяться во времени, поэтому del url_list[0] не будет работать.

Я пытался url_list.remove('<img src="https://test.com/temp.jpg" style="display:block"/>')

но он не работал, так как его тип был другим.

Редактировать: Я хочу удалить этот '<img src="https://test.com/temp.jpg" style="display:block"/>' точный элемент.и «при сохранении его типа« bs4.element.Tag »означает, что я не хочу изменять тип элемента списка.

Ответы [ 2 ]

1 голос
/ 23 марта 2019

Преобразовать строковое представление тега в объект BS:

tag = '<img src="https://test.com/temp.jpg" style="display:block"/>'
unwanted = bs4.BeautifulSoup(tag).img

И удалить его:

url_list.remove(unwanted)
0 голосов
/ 23 марта 2019

Проще всего, наверное, просто просмотреть каждый тег и проверить, содержит ли тег определенный элемент, что можно сделать с помощью метода tag.get().Например, вы можете сделать что-то вроде

 for tag in url_list:
     if tag.get('src') == 'some_url':
         url_list.remove(tag)

, метод get() можно использовать для извлечения любого из отдельных свойств тега, а не только src.Как вы отфильтруете какой тег удалить, зависит только от вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...