Спарсить название объявления на Авито на Python

Всем добрый день! Делаю парсер для авито на python, универсальный, то есть под любую категорию. Не могу спарсить название объявления. Вот код HTML на самом сайте авито:

<h3 class="snippet-title" data-marker="item-title" data-shape="default">
    <a class="snippet-link" itemprop="url" href="/moskva/avtomobili/bmw_5_seriya_2013_1906074802" target="_blank" title="BMW 5 серия, 2013, с пробегом, цена 1 157 000 руб. - Автомобили в Москве">BMW 5 серия, 2013</a>

Есть ссылка на стрницу: https://www.avito.ru/moskva/avtomobili/bmw/5-seriya-ASgBAgICAkTgtg3klyjitg3UnCg?radius=0 Не могу получить название: BMW 5 серия, 2013. Эти слова не в span, как получить - не знаю. Имеется код:

def parse_block(self, item)
    url_block = item.select_one('a.snippet-link')
    href = url_block.get('href')
    if href:
        url = 'https://www.avito.ru' + href
    else:
        url = None

    # Выбрать блок с названием
    title_block = item.select_one('h3.snippet-title.a.snippet-link')
    print(title_block)
    return
    title = title_block.string.strip()

h3.snippet-title.a.snippet-link - неудачная попытка достать текст. Подскажите пожалуйста, как достать эти слова: "BMW 5 серия, 2013" отсюда: <a class="snippet-link" itemprop="url" href="/moskva/avtomobili/bmw_5_seriya_2013_1906074802" target="_blank" title="BMW 5 серия, 2013, с пробегом, цена 1 157 000 руб. - Автомобили в Москве">BMW 5 серия, 2013</a>. Заранее огромное спасибо!


Ответы (2 шт):

Автор решения: hedgehogues

Вытащить все атрибуты

title_block.attrs 

Ещё один из вариантов -- это поиск подстроки и всё. Ссылку достали. Предположим, она лежит в переменной title (вы его вроде вытащили).

s_anchor = 'title="'  # якорь начальной позиции
f_anchor = '">'  # якорь конечной позиции позиции
s_pos = title.find(s_anchor) + len(s_anchor) #  ищем начало title
f_pos = title[s_pos].find(f_anchor)  # ищем конечную позицию.

name = title[s_pos:f_pos]  # название, которое лежит в атрибуте
→ Ссылка
Автор решения: Evgeniy

Так проще:

title = item.find('a', class_='snippet-link')['title']

Где item Это soup.find('div', {'itemtype': 'http://schema.org/Product'})

Здесь полный код

def get_item(html):
    products = []
    soup = bs(html, 'lxml') # bs == from bs4 import BeautifulSoup as bs
    items = soup.find_all('div', {'itemtype': 'http://schema.org/Product'})
    for item in items:
        title = item.find('a', class_='snippet-link')['title']
        price = item.find('span', {'data-marker': 'item-price'}).text
        link = 'https://www.avito.ru' + item.find('a', class_='snippet-link')['href']
        products.append((title, price.strip(), link))
    return products
→ Ссылка