Использование BeautifulSoup для поиска элемента по тегу src - PullRequest
0 голосов
/ 29 апреля 2019

Допустим, я очищаю веб-страницу и хочу выбрать определенное изображение на веб-странице. Так же, как вы можете найти элементы на основе их имени класса, я хочу выбрать изображение по его тегу src. Как выбрать изображение, для которого я уже знаю тег src?

т.е. Я хочу выбрать изображение с тегом src:

https://assets.bandsintown.com/images/pin.svg

Ответы [ 4 ]

3 голосов
/ 29 апреля 2019

Вы можете искать по произвольным атрибутам; это должно работать:

soup.findAll("img", {"src" : "https://assets.bandsintown.com/images/pin.svg"})
1 голос
/ 29 апреля 2019

В то время как ответ @ Blorgbeard показывает подход Beautifulsoup, используя Selenium , вы можете добиться того же, используя любую из следующих стратегий локатора :

0 голосов
/ 30 апреля 2019

Вы сказали одно изображение по значению src. Используйте select_one. Меньше работы и вам нужен только селектор атрибутов.

soup.select_one('[src="https://assets.bandsintown.com/images/pin.svg"]')['src']
0 голосов
/ 29 апреля 2019

Используя Beautifulsoup, вы можете сделать это разными способами.Вы можете использовать css-селектор, вы также можете использовать регулярные выражения.

Css-селектор

for item in soup.select('img[src="https://assets.bandsintown.com/images/pin.svg"]'):
   print(item['src'])

Регулярное выражение с find_all

import re
for item in soup.find_all('img',src=re.compile('https://assets.bandsintown.com/images/pin.svg')):
   print(item['src'])
...