jcmax
@jcmax
Супер Пользователь

Как собрать все ссылки с помощью beautifulsoup?

Добрый день. Подскажите как собрать все ссылки с определенного сайта с помощью beautiful soup

у меня есть метод который уже парсит html код, и там примерно вот такая структура

<div class="home_brands_line">
<a href="/ru/car-specs/Acura-models">
<div class="col-md-2 col-sm-3 col-xs-4 col-4">
<div class="home_brand">
<div class="home_brand_over"><h2>Acura </h2></div>
<div class="home_brand_logo"><img alt="Acura" src="/logos/spacer.gif" style="background:url(/logos/sprite.png) -252px 0;width:60px;height:60px"/></div>
</div>
</div>
</a>
<a href="/ru/car-specs/Alfa-Romeo-models">
<div class="col-md-2 col-sm-3 col-xs-4 col-4">
<div class="home_brand">
<div class="home_brand_over"><h2>Alfa Romeo </h2></div>
<div class="home_brand_logo"><img alt="Alfa Romeo" src="/logos/spacer.gif" style="background:url(/logos/sprite.png) -312px 0;width:61px;height:60px"/></div>
</div>
</div>
</a>
<a href="/ru/car-specs/Aston-Martin-models">
<div class="col-md-2 col-sm-3 col-xs-4 col-4">
<div class="home_brand">
<div class="home_brand_over"><h2>Aston Martin </h2></div>
<div class="home_brand_logo"><img alt="Aston Martin" src="/logos/spacer.gif" style="background:url(/logos/sprite.png) -373px 0;width:65px;height:60px"/></div>
</div>
</div>
</a>
<a href="/ru/car-specs/Audi-models">
<div class="col-md-2 col-sm-3 col-xs-4 col-4">
<div class="home_brand">
<div class="home_brand_over"><h2>Audi </h2></div>
<div class="home_brand_logo"><img alt="Audi" src="/logos/spacer.gif" style="background:url(/logos/sprite.png) -438px 0;width:70px;height:60px"/></div>
</div>
</div>
</a>
<a href="/ru/car-specs/Bentley-models">
<div class="col-md-2 col-sm-3 col-xs-4 col-4">
<div class="home_brand">
<div class="home_brand_over"><h2>Bentley </h2></div>
<div class="home_brand_logo"><img alt="Bentley" src="/logos/spacer.gif" style="background:url(/logos/sprite.png) -508px 0;width:105px;height:60px"/></div>
</div>
</div>
</a>
<a href="/ru/car-specs/BMW-models">
<div class="col-md-2 col-sm-3 col-xs-4 col-4">
<div class="home_brand">
<div class="home_brand_over"><h2>BMW </h2></div>
<div class="home_brand_logo"><img alt="BMW" src="/logos/spacer.gif" style="background:url(/logos/sprite.png) -613px 0;width:60px;height:60px"/></div>
</div>
</div>
</a>
</div>,
 <div class="home_brands_line">


и сам метод который должен отделить ссылки

# Получаем ссылки из html кода
def get_all_links(html):
    soup = BeautifulSoup(html, 'html.parser')
    # вырезаем определенный html код и находим нужные ссылки
    tds = soup.find('div', class_='home_brands').find_all('div', class_='home_brands_line')
    pprint(tds)
    links = []
    # '''
    # Достаем ссылки и крепим их в массив
    for td in tds:
        a = td.find('a').get('href')
        links.append(a)
    print(links)
    return links
    # '''

метод выше выдает вот такой результат, т.е это первые линии после div
['/ru/car-specs/Acura-models', '/ru/car-specs/Cadillac-models', '/ru/car-specs/Ferrari-models', '/ru/car-specs/Jeep-models', '/ru/car-specs/Maserati-models', '/ru/car-specs/Nissan-models', '/ru/car-specs/Rover-models', '/ru/car-specs/Tesla']

выдает он либо с первого div -> class='home_brands_line' а остальные забивает, либо вообще ощибку. как мне их собрать
  • Вопрос задан
  • 998 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
по всему доку зашуруй

td.find('a').get('href')
Ответ написан
Ваш ответ на вопрос

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

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