BeautifulSoup .texte de la méthode retourne le texte sans séparateurs (\n, \r, etc)
J'ai essayé d'analyser les paroles de la chanson le plus grand russe paroles site http://amalgama-lab.com et enregistrer les paroles (traduites et original) dans la liste audio à partir de mon compte Vkontakte(malheureusement, amalgama n'ont pas d'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)
mais .texte méthode renvoie la chaîne sans tout séparateurs:
"Hier, tous mes problèmes semblaient si loin awayNow il regarder comme si ils sont là pour stayOh, je crois en yesterdaySuddenly, je ne suis pas la moitié de l'homme que j'ai utilisé pour beThere une ombre suspendue au-dessus de meOh, hier est venu soudainement[Chorus:]Pourquoi elle devait aller je ne sais pas, elle ne serait pas sayI dit quelque chose de mal, maintenant j'ai du yesterdayYesterday, l'amour était un jeu facile à playNow j'ai besoin d'un endroit pour se cacher awayOh, je crois en"
Son principal problème. Ensuite, quel meilleur moyen pour enregistrer des paroles telles de cette façon:
Paroles de la ligne 1 (Original)
Paroles de la ligne 1 (Traduit)
Paroles de la ligne 2 (Original)
Paroles de la ligne 2 (Traduit)
Paroles de la ligne 3 (Original)
Paroles de la ligne 3 (Traduit)
...
? Je ne reçois que le code désordre. Grâce
Exemple: amalgama.mobi/songs/b/beatles/yesterday.html
Notez qu'il y a pas de retours à la ligne dans le texte de la chanson, seulement
<br/>
étiquettes, que l'OP est le décapage..Je sais:) Quoi de mieux pour convertir html > texte? L'OFC, je peux remplacer les <br/> '\n', et de supprimer toutes les autres balises par moi-même, mais il aurait l'air ..dirtly
OriginalL'auteur just so | 2012-08-25
Vous devez vous connecter pour publier un commentaire.
Essayer le
separator
paramètre de laget_text
méthode:OriginalL'auteur Bishwas Mishra
Je vous suggère de regarder dans l' .les chaînes de générateur trouvé dans la Belle Soupe 4.
stripped_strings
. Si vous souhaitez effectuer une itération de la generator, vous pouvez essayer cefor string in soup.stripped_strings:
par exemple.OriginalL'auteur Leonard Richardson
Vous pouvez faire ceci:
OriginalL'auteur Nasir