Как очистить атрибуты, содержащие строковые символы (python, beautifulsoup) - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь очистить все href теги, которые содержат ^/album$. Когда я распечатываю свой результат, я получаю пустой список. Я пробовал find() и findAll() с re.compile и re.search. Я не могу получить ничего, кроме пустого списка.

Код:

vk_urls = soup.find_all('a')
vk_albums = soup.findAll(text='^/album$')
print(vk_albums)

Результат:

[]

Желаемый результат:

/album...
/album...
/album...

1 Ответ

1 голос
/ 27 марта 2020

Вам нужно использовать href= вместо text= (или string= в Beautiful Soup 4) для фильтрации по содержимому атрибута href. Последние (т.е. text и string) используются для поиска строк в тегах.

Чтобы найти все теги привязки с атрибутом href, который содержит /album, вам необходимо сделать следующее:

vk_albums = soup.find_all("a", href=re.compile("^/album"))
print(vk_albums) 

Затем вы можете l oop через этот список выведите только атрибуты href:

for album in vk_albums:
    print(album['href'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...