How to extract value of div attribute using BeautifulSoup

I have a div whose id is "img-cont"

<div class="img-cont-box" id="img-cont" style='background-image: url("http://example.com/example.jpg");'>

      

I want to extract url in background image using nice soup. How can i do this?

+3


source to share


2 answers


You can choose find_all

or find

for the first match.



import re 
soup = BeautifulSoup(html_str)
result = soup.find('div',attrs={'id':'img-cont','style':True})
if result is not None:
  url = re.findall('\("(http.*)"\)',result['style']) # return a list. 

      

+5


source


Try the following:



import re

from bs4 import BeautifulSoup

html = '''\
<div class="img-cont-box" \
id="img-cont" \
style='background-image: url("http://example.com/example.jpg");'>\
'''

soup = BeautifulSoup(html, 'html.parser')
div = soup.find('div', id='img-cont')
print(re.search(r'url\("(.+)"\)', div['style']).group(1))

      

+1


source







All Articles