-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparse_xml.py
35 lines (27 loc) · 1.02 KB
/
parse_xml.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import xmltodict
from ftfy import fix_text
f_name = "example_rss.xml"
with open(f_name, "r") as f:
xml_string = f.read()
xml_dict = xmltodict.parse(xml_string)
podcast_title = xml_dict["rss"]["channel"]["title"]
podcast_description = xml_dict["rss"]["channel"]["description"]
podcast_link = xml_dict["rss"]["channel"]["link"]
print(f"Title: {podcast_title}")
print(f"Description: {podcast_description}")
print(f"Link: {podcast_link}")
episodes = xml_dict["rss"]["channel"]["item"]
episodes_links = [episode["link"] for episode in episodes]
episode_mp3_links = [episode["enclosure"]["@url"] for episode in episodes]
eposides_descriptions = [episode["description"] for episode in episodes]
print (f"Found {len(episodes)} episodes")
for episode in episodes[:1]:
print (f"Title: {fix_text(episode['title'])}")
print (f"Link: {episode['link']}")
print (f"Description: {fix_text(episode['description'])}")
print (f"MP3: {episode['enclosure']['@url']}")
print (xml_dict["rss"]["channel"].keys())
'''
- rss
- channel
'''