python select_one 질문드립니다.
본문
안녕하세요.
select_one으로 거의 모든정보를 가져왔는데
아래 적색부분 url 부분만 따로 가져올수 있는지 궁금합니다.
2021/0910/202109101125338484700.jpg
아래 소스로 해보았으나 에러가 나네요
image_url = soup.select_one('img[style="width:100%"]')['src']
감사합니다.
<div class="container mt-2">
<div class="row list-item">
<div class="col-12 col-sm-7 col-md-7 mt-2">
<div class="card card-fluid">
<script>
document.write('<img src="'+img_domain+'2021/0910/202109101125338484700.jpg'+'" style="width:100%">');
</script>
<div class="naver" style="">
</div>
</div> </div> </div> </div>
답변 1
다음과 같이 해 볼 수 있지 않을까 합니다.
HTML 코드에서 이미지 URL을 선택하는 방법은 이미지 태그를 직접 선택하는 것이 아니라 JavaScript 코드에서 이미지 URL을 생성하는 부분을 선택해야 합니다.
예를 들면 다음과 같습니다.
from bs4 import BeautifulSoup
# HTML 코드를 제공합니다.
html_code = """
<div class="container mt-2">
<div class="row list-item">
<div class="col-12 col-sm-7 col-md-7 mt-2">
<div class="card card-fluid">
<script>
document.write('<img src="'+img_domain+'2021/0910/202109101125338484700.jpg'+'" style="width:100%">');
</script>
<div class="naver" style="">
</div>
</div>
</div>
</div>
</div>
"""
# BeautifulSoup을 사용하여 HTML을 파싱합니다.
soup = BeautifulSoup(html_code, 'html.parser')
# JavaScript 코드 부분을 선택합니다.
script = soup.find('script')
if script:
# JavaScript 코드에서 이미지 URL을 추출합니다.
js_code = script.string
img_url = js_code.split('img_domain')[1].split('" style=')[0].strip("'+")
print(img_url)
else:
print("이미지 URL을 찾을 수 없습니다.")
JavaScript 부분을 선택하고, JavaScript 코드에서 이미지 URL을 추출하는 방식으로 이렇게 하면 이미지 URL을 가져 올 수 있을 것 같습니다.
!-->