Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- from bs4 import BeautifulSoup
- def request_html(url: str) -> str:
- return requests.get(url).text
- def build_search_url(song_autor: str, song_name: str) -> str:
- LYRICS_STORAGE_URL = 'https://search.azlyrics.com/'
- return f'{LYRICS_STORAGE_URL}?q=' \
- f'{song_autor} ' \
- f'{song_name}'
- def parse_best_match_url(html: str) -> str:
- parser = BeautifulSoup(html, 'lxml')
- table = parser.find_all('table', class_='table table-condensed')[0]
- url = table.find_all('a', href=True)[0]['href']
- return url
- def parse_lyrics(html: str) -> str:
- parser = BeautifulSoup(html, 'lxml')
- main_div = parser.find_all('div', class_='col-xs-12 col-lg-8 text-center')[0]
- lyrics_div = main_div.find_all('div')[5]
- return lyrics_div.text
- if __name__ == '__main__':
- songs = [
- ('Linkin park', 'Invisible'),
- ('Bring me the horizon', 'Avalanche'),
- ('MO', 'Nights with you')
- ]
- for autor, name in songs:
- search_url = build_search_url(autor, name)
- lyrics_url = parse_best_match_url(request_html(search_url))
- lyrics = parse_lyrics(request_html(lyrics_url))
- print(lyrics)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement