BeautifulSoup - Как получить все значения определенного атрибута - PullRequest
1 голос
/ 28 мая 2020
<div class="cont">

    <p style="text-align: center; "><img alt="" src="/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg"></p>
    <p style="text-align: center; "><img alt="" src="/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg"></p>
    <p style="text-align: center; "><img alt="" src="/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg"></p>

</div>

Я пытаюсь получить все значения sr c из этого HTML.

Мой код:

soup = BeautifulSoup(source, "html.parser")
div = soup.find("div", {"class": "cont"})
imgs = div.find_all("img", {"src":True})
print(imgs)

Список, возвращаемый этим кодом, содержит тег и другие атрибуты, такие как «alt». Как я могу извлечь только значения атрибутов sr c (например, '/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg')

Ответы [ 2 ]

3 голосов
/ 28 мая 2020

Попробуйте добавить для l oop, Пример

for img in imgs:
    print(img['src'])

Или, чтобы упростить

from bs4 import BeautifulSoup

html = """
<div class="cont">
    <p style="text-align: center; "><img alt="" src="/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg"></p>
    <p style="text-align: center; "><img alt="" src="/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg"></p>
    <p style="text-align: center; "><img alt="" src="/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg"></p>

</div>
"""

soup = BeautifulSoup(html, features='html.parser')
elements = soup.select('div.cont > p > img')

for element in elements:
    print(element['src'])

Распечатывает

/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg
/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg
/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg

, если вы пытаетесь загрузить изображения, см. Пример

{ ссылка }

2 голосов
/ 28 мая 2020

используя find_all

from bs4 import BeautifulSoup

soup = BeautifulSoup(source, "html.parser")
div = soup.find("div", {"class": "cont"})

print([img['src'] for img in div.find_all("img")])

вывод,

['/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg', 
 '/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg',
 '/web/upload/NNEditor/20200409/1_1_shop1_143320.jpg']

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