@markbrutx

Как спарсить ссылку на страницу и ссылку изображения с помощью BS4?

Есть такой код:

<div>
                                        <div class="center mt10 mb5">{}</div>
                <div class="center">
                    <table width="100%" border="0" cellpadding="0" cellspacing="0">
                        <tbody><tr>
                            <td valign="top" class="lp0">
                                <a class="square-btn-green" href="сслыка1"><img class="va-m" src="ссылка2.png" alt=""></a>                            </td>
                            <td valign="top" class="lp0">
                                <a class="square-btn-green" href="ссылка1"> <img class="va-m" src="ссылка2.png" alt=""></a>                            </td>
                            <td valign="top" class="lp0">
                                <a class="square-btn-green" href="сслыка1"><img class="va-m" src="сслыка2.png" alt=""></a>                            </td>
                        </tr>  
                    </tbody></table>
                    <div class="gray_italic center mt5"> </div>
                </div>
                    </div>
 
    <div class="balka-bot"></div>
</div>


Как спарсить все ссылки и на страницы и на изображения и записать в отдельные переменные? как бы я не пробовал, получаются пустые элементы. Нужно скопировать именно ссылку полностью
К примеру:
link1_1 = "http://example.com"
link1_2 = "http://example.com/1-2.png"
...
link3_1 = "http://example3.com"
link3_2 = "http://example.com/3-2.png"
  • Вопрос задан
  • 562 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
from bs4 import BeautifulSoup as bs4



source = '''<div>
                                        <div class="center mt10 mb5">{}</div>
                <div class="center">
                    <table width="100%" border="0" cellpadding="0" cellspacing="0">
                        <tbody><tr>
                            <td valign="top" class="lp0">
                                <a class="square-btn-green"><img class="va-m" src="ссылка2.png" alt=""></a>                            </td>
                            <td valign="top" class="lp0">
                                <a class="square-btn-green" href="ссылка1"><img class="va-m" src="ссылка2.png" alt=""></a>                            </td>
                            <td valign="top" class="lp0">
                                <a class="square-btn-green" href="сслыка1"><img class="va-m" src="сслыка2.png" alt=""></a>                            </td>
                        </tr>  
                    </tbody></table>
                    <div class="gray_italic center mt5"> </div>
                </div>
                    </div>
 
    <div class="balka-bot"></div>
</div>'''


soup = bs4(source, 'html.parser')

links = soup.find_all('a', attrs={'class': 'square-btn-green'})

for link in links:
    url = link.get('href', '-')
    image_url = link.find('img').get('src', '-')

    print(url, image_url)


Вывод
ссылка1 ссылка2.png
ссылка1 ссылка2.png
сслыка1 сслыка2.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы