BeautifulSoup найти значение атрибута в любом теге - PullRequest
1 голос
/ 08 марта 2019

Как найти значение определенного атрибута, используя bs4? Например, мне нужно найти все значения атрибута src, он может быть в любом теге моего HTML-документа.

Ответы [ 2 ]

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

Просто используйте селектор атрибута (для этого он и предназначен).Более эффективный.

values = [item['src'] for item in soup.select('[src]')]

Вы можете расширить, добавив требуемую строку / подстроку нужного значения, добавив = substring / string после атрибута, т.е. [src = "mystring"]

Пример:

import requests
from bs4 import BeautifulSoup as bs

res = requests.get('/8843816/beautifulsoup-naiti-znachenie-atributa-v-lybom-tege')
soup = bs(res.content, 'lxml')
values = [item['src'] for item in soup.select('[src]')]
print(values)
1 голос
/ 08 марта 2019

Вы можете сделать что-то вроде этого:

from bs4 import BeautifulSoup
import requests

r = requests.get('http://your.url')
soup = BeautifulSoup(r.text,'html.parser')

attr_src = []
for tag in soup():
    if 'src' in tag.attrs:
        attr_src.append(tag.get('src'))
print(attr_src)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...