Форум сайта python.su
1
Хочу попробоватьк качать треки из вк. Столкнулся с тем, что название трека имеет вид e561er5mu5.mp3.
Как при скачивании получить нормальное название?
Офлайн
75
Изпользовать API? Там можо получить информацию про трек
Офлайн
2
Смотря как вы тащите аудиозаписи. Если парсите страницу с записями, то после
<input ... /c679058f15e6.mp3,260" />
<div class="title_wrap fl_l" onmouseover="setTitle(this);"... Тут название песни</div>
Офлайн
1
Можете помочь вытащить ссылки на треки со страницы? Пытался с помощью lxml.cssselect вытащить, но не разобрался как.
Разбираю страницу https://m.vk.com/audio
Офлайн
2
А в чем, собственно, проблема-то возникла?
Я для парсинга использую BeautifulSoup под python 3. Но никаких принципиальных различий как между lxml и bs, так и между большой и мобильной версией сайта нет.
Проходитесь циклом по тексту страницы. К примеру ищите такой блок кода:
<div class="ai_body"> <div class="ai_dur" data-dur="240" onclick="audioplayer.switchTimeFormat(this, event);">4:00</div> <div class="ai_label"> <span class="ai_artist">Vass</span> – <span class="ai_title">Rowdy Arabia </span> </div> <input type="hidden" value="https://psv4.vk.me/c6294/u164891073/audios/b8798ae959cb.mp3"> </div>
Офлайн
1
import lxml.html page = open('1.html') doc = lxml.html.document_fromstring(page.read()) for url in doc.cssselect('div.ai_body input'): print url.text
Офлайн
2
Он и не должен ничего находить. Советую тщательно ознакомиться с этим. Питона нет под рукой, поэтому проверить lxml не могу, но по идее такое должно сработать:
for input in doc.cssselect('div.ai_body input'): print(input.value)
Отредактировано wiygn (Июнь 30, 2013 07:58:42)
Офлайн
1
Спасибо) Работает)
Офлайн