@xzartsust
Учусь

Как с помощью библиотеки requests взять ссылку с определенного HTML тега?

Добрый день.
Возникла проблема. Не могу понять как достать из сайта ссылку с тега img.
Вот сам сайт:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!--Let browser know website is optimized for mobile-->
</head>
<body class="deep-purple darken-2">
<!--Import jQuery before materialize.js-->
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="static/js/materialize.min.js"></script>
<div class="fixed-action-btn">
    <a class="btn-floating btn-large pink lighten-3 hide-on-med-and-up" onclick="window.location.reload()">
        <b>></b>
    </a>
    <a class="btn-floating btn-large pink lighten-3 hide-on-small-only" onclick="window.location.reload()">
        <b>+</b>
    </a>
    <ul>
        <li><a class="btn-floating light-blue hide-on-small-only" href="/api/v2/endpoints"><i
                class="fa fa-cogs"></i></a></li>
        <li><a class="btn-floating red hide-on-small-only" href="https://github.com/Nekos-life"><i
                class="fa fa-github"></i></a></li>
        <li><a class="btn-floating yellow darken-1 hide-on-small-only" href="https://www.paypal.me/MewBot/"><i
                class="fa fa-paypal"></i></a></li>
        <li><a class="btn-floating blue hide-on-small-only" href="https://twitter.com/TheNeko_life"> <i
                class="fa fa-twitter"></i></a></li>
        <li><a class="btn-floating pink hide-on-small-only" onclick="window.location.reload()" ><i class="material-icons">skip_next</i></a></li>
    </ul>
</div>
<nav>
    <div class="nav-wrapper deep-purple darken-2">
        <a href="#" class="brand-logo hide-on-small-only">Nekos! ( ͒ ु- •̫̮ – ू ͒)</a>
        <a href="#" class="brand-logo right hide-on-med-and-up">Nekos!</a>
        <a href="#" data-activates="mobile-demo" class="button-collapse"><i class="material-icons">menu</i></a>
        <ul id="nav-mobile" class="right hide-on-med-and-down">
            <li><a href="/lewd">Lewd Nekos!</a></li>
            <li>
                <a href="https://discordapp.com/oauth2/authorize?client_id=334186716770598912&scope=bot&permissions=16384">Discord
                    bot!</a></li>
            <li><a href="https://discord.gg/BARzYz8">Discord!</a></li>
        </ul>
        <ul class="side-nav deep-purple darken-2" id="mobile-demo">
            <li><a class="purple" href="/lewd"><i class="fa fa-paw"></i>Lewd Nekos!</a></li>
            <li><a class="purple" href="https://discordapp.com/oauth2/authorize?client_id=334186716770598912&scope=bot&permissions=16384"><i class="fa fa-android"></i>Add Discord bot!</a></li>
            <li><a class="purple" href="https://discord.gg/BARzYz8"><i class="fa fa-plus-circle"></i>Join Discord!</a>
            </li>
            <li><a class="purple" href="/api/v2/endpoints"><i class="fa fa-cogs"></i>API</a></li>
            <li><a class="purple" href="https://github.com/Nekos-life"><i class="fa fa-github"></i>Github</a></li>
            <li><a class="purple" href="https://twitter.com/TheNeko_life"> <i class="fa fa-twitter"></i>twitter</a></li>
            <li><a class="purple" href="https://www.paypal.me/MewBot/"><i class="fa fa-paypal"></i>Paypal</a></li>
        </ul>
    </div>
</nav>

<div class="w3-container w3-card-4 w3-center w3-purple">
    <br>
    <img src="https://cdn.nekos.life/neko/neko_293.jpeg" alt="neko" class="w3-image w3-card-4"
         onclick="document.getElementById('modal01').style.display='block'">
    <br>
    <br>
</div>
<div id="modal01" class="w3-modal" onclick="this.style.display='none'">
    <span class="w3-button w3-pink w3-hover-red w3-xlarge w3-display-topright">&times;</span>
    <div class="w3-modal-content w3-animate-zoom">
        <img src="https://cdn.nekos.life/neko/neko_293.jpeg" class="w3-image w3-card-4">
    </div>
</div>
<footer class="page-footer deep-purple darken-2">
    <div class="container">
        <div class="row">
            <div class="col l6 s12">
                <a href='https://play.google.com/store/apps/details?id=like.nekos.nekos&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img
                        style="width:30%" alt='Get it on Google Play'
                        src='https://cdn.discordapp.com/attachments/377619690513498133/406195869948313600/google-play-badge.svg'/></a>
                <a href='https://www.youtube.com/watch?v=oHg5SJYRHA0'><img style="width:30%" alt='LUL'
                                                                           src='https://cdn.discordapp.com/attachments/377619690513498133/406195794295914517/app-store-badge.svg'/></a>

            </div>
            <div class="col l4 offset-l2 s12">
                <ul>
                    <li><a href="https://github.com/Nekos-life"><img
                            src="https://cdn.discordapp.com/attachments/377619690513498133/406183455123177481/OpenSauce.svg"></a>
                    </li>
                    <li><a href="https://github.com/Nekos-life"><img
                            src="https://cdn.discordapp.com/attachments/377619690513498133/406183436571639808/License.svg"></a>
                    </li>
                </ul>
            </div>
        </div>
    </div>
    <div class="footer-copyright">
        <div class="container">
            Made By <a href="https://discord.gg/NG5VW2r">Tails</a> with love�
        </div>
    </div>
</footer>
</body>
</html>

Нужно отсюда забрать изображения но я не знаю как:
<div class="w3-container w3-card-4 w3-center w3-purple">
    <br>
    <img src="https://cdn.nekos.life/neko/neko_293.jpeg" alt="neko" class="w3-image w3-card-4"
         onclick="document.getElementById('modal01').style.display='block'">
    <br>
    <br>
</div>
  • Вопрос задан
  • 381 просмотр
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.text, 'html.parser')
img = soup.find('img')['src']
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
gscraft
@gscraft
Программист, философ
Если Вы смогли получить содержимое страницы по адресу с помощью requests, хотя это решается и коробочным urllib:
import urllib
f = urllib.request.urlopen('https://your.site')
html = f.read(100).decode('utf-8')

... то далее нужна библиотека для разбора HTML-кода, иначе не получится. Это уже вне компетенции requests / urllib. Можете воспользоваться встроенной библиотекой перебором элементов и изловчившись с поиском, или прибегнуть к сторонней. Я не решу за Вас разбор кода, но покажу пример с BeatutifulSoup:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html) # HTML, взятый по ссылке
img = soup.find('div.w3-container img.w3-image') # Вам придется продумать выборку
src = img.attrs.get('src')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы