我试图解析来自俄罗斯最大歌词网站http://amalgama-lab.com的歌词,并将歌词(翻译和原始)保存到Vkontakte帐户的音频列表中(遗憾的是,amalgama没有任何API)
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)
但是.text方法返回字符串而不返回任何分隔符:
“昨天,我所有的烦恼似乎都离我太远了,看起来好像它们都在这里等待着我,我相信昨天突然,我不再是以前的一半了,有一个阴影笼罩着我,昨天突然来了[合唱:]为什么她要走我不知道,她不会说我说错了什么,现在我渴望昨天,爱是这样的一个简单的游戏现在我需要一个藏身的地方,我相信
这是主要问题。接下来,有什么更好的方法来保存这样的歌词:
歌词第1行(原件)
歌词第1行(翻译)
歌词第2行(原文)
歌词第2行(翻译)
歌词第三行(原文)
歌词第三行(翻译)
。。。
是吗?我只得到混乱的代码。谢谢
尝试^{} 方法的
separator
参数:你可以这样做:
我建议你调查一下the .strings generator found in Beautiful Soup 4。
相关问题 更多 >
编程相关推荐