У меня проблема с анализом ссылки из файла, потому что это не полная ссылка, текст для анализа:
<enclosure url="/itunes/463/RKBU-How-the-Seas-Shaped-Humanit-02019_09_24_13_40_18-0.mp3" length="83586948" type="audio/mpeg"/>
Ссылка должна быть:
https://www.opednews.com/itunes/463/RKBU-How-the-Seas-Shaped-Humanit-02019_09_24_13_40_18-0.mp3
Как бы я включил первую часть адреса веб-сайта в ссылку, созданную в следующем выводе, чтобы адрес был полным? Любой совет будет принята с благодарностью.
def get_playable_podcast1(soup1): subjects = [] for content in soup1.find_all('item', limit=9): try: link = content.find('enclosure') link = link.get('url') print("\n\nLink: ", link) title = content.find('title') title = title.get_text() except AttributeError: continue item = { 'url': link, 'title': title, 'thumbnail': "https://upload.wikimedia.org/wikipedia/en/thumb/2/21/OpEdNews_%28logo%29.jpg/200px-OpEdNews_%28logo%29.jpg", } subjects.append(item) return subjects
Вы можете использовать BeautifulSoup с urllib.parse.urljoin:
BeautifulSoup
urllib.parse.urljoin
import urllib.parse from bs4 import BeautifulSoup as soup url, html = 'https://www.opednews.com', '<enclosure url="/itunes/463/RKBU-How-the-Seas-Shaped-Humanit-02019_09_24_13_40_18-0.mp3" length="83586948" type="audio/mpeg"/>' result = urllib.parse.urljoin(url, soup(html, 'html.parser').enclosure['url'])
Выход:
'https://www.opednews.com/itunes/463/RKBU-How-the-Seas-Shaped-Humanit-02019_09_24_13_40_18-0.mp3'