Tôi đã cố gắng phân tích lời bài hát từ trang lời bài hát tiếng Nga lớn nhất http://amalgama-lab.com và lưu lời bài hát (dịch và bản gốc) vào danh sách âm thanh từ tài khoản Vkontakte của tôi (thật đáng buồn) , amalgama không có bất kỳ API)Phương thức BeautifulSoup .text trả về văn bản không có dấu phân tách ( n, r vv)
import urllib
from BeautifulSoup import BeautifulSoup
import vkontakte
vk = vkontakte.API(token=<SECRET_TOKEN>)
audios = vk.getAudios(count='2')
#{u'artist': u'The Beatles', u'url': u'http://cs4519.vkontakte.ru/u4665445/audio/4241af71a888.mp3', u'title': u'Yesterday', u'lyrics_id': u'2365986', u'duration': 130, u'aid': 166194990, u'owner_id': 173505924}
url = 'http://amalgama.mobi/songs/'
for i in audios:
print i['artist']
if i['artist'].startswith('The '):
url += i['artist'][4:5] + '/' + i['artist'][4:].replace(' ', '_') + '/' +i['title'].replace(' ', '_') + '.html'
else:
url += i['artist'][:1] + '/' + i['artist'].replace(' ', '_') + '/' +i['title'].replace(' ', '_') + '.html'
url = url.lower()
page = urllib.urlopen(url)
soup = BeautifulSoup(page.read(), fromEncoding="utf-8")
texts = soup.findAll('ol',)
if len(texts) != 0:
en = texts[0].text #this!
ru = texts[1].text #this!
vk.get('audio.edit', aid=i['aid'], oid = i['owner_id'], artist=i['artist'], title = i['title'], text = ru, no_search = 0)
nhưng phương pháp .text trả về chuỗi mà không bất kỳ dải phân cách:
"Hôm qua, tất cả những rắc rối của tôi dường như cho đến nay awayNow nó trông như thể họ đang ở đây để ở lại, tôi tin vào ngày hôm quaBất nhiên, tôi không phải là một nửa người đàn ông mà tôi từng có r meOh, hôm qua đột nhiên [Chorus:] Tại sao cô ấy phải đi Tôi không biết, cô ấy sẽ không nói tôi đã nói điều gì đó sai, bây giờ tôi đã kéo dài ngày hôm qua, tình yêu là một trò chơi dễ dàng để chơiLàm thế nào tôi cần một nơi để ẩn awayOh, tôi tin vào "
Đó là vấn đề chính. Tiếp theo, những gì cách tốt hơn để lưu lời bài hát như vậy theo cách này:
Lyrics dòng 1 (Original)
Lyrics dòng 1 (dịch)
Lyrics dòng 2 (Original)
Lyrics dòng 2 (dịch)
Lyrics dòng 3 (Original)
Lyrics dòng 3 (dịch)
...
? Tôi chỉ nhận được mã lộn xộn. Cảm ơn
Vui lòng cung cấp một liên kết đến trang thực tế bạn đang phân tích. – BrenBarn
Ví dụ: http://amalgama.mobi/songs/b/beatles/yesterday.html –
Lưu ý rằng có * là * không có dòng mới trong văn bản bài hát, chỉ có các thẻ '
', mà OP sẽ loại bỏ .. –