# 2020 Ravi Shah # This script selects a random chapter and verse from the Bhagavad Gita and scrapes it from a website. # Imports from bs4 import BeautifulSoup import requests import random # Remove

tags from the scraped div and replace
with a newline def get_p(transliteration): j = 0 for i in transliteration: j = j+1 i = str(i) new_string = i.replace("

","").replace("

","").replace("
","\n") if j == 2: return new_string else: continue # Generate a random verse number based on the provided chapter def get_verse_numbers(chapter): if chapter == 1: verse = random.randint(1, 47) elif chapter == 2: verse = random.randint(1, 72) elif chapter == 3: verse = random.randint(1, 43) elif chapter == 4: verse = random.randint(1, 42) elif chapter == 5: verse = random.randint(1, 29) elif chapter == 6: verse = random.randint(1, 47) elif chapter == 7: verse = random.randint(1, 30) elif chapter == 8: verse = random.randint(1, 28) elif chapter == 9: verse = random.randint(1, 34) elif chapter == 10: verse = random.randint(1, 42) elif chapter == 11: verse = random.randint(1, 55) elif chapter == 12: verse = random.randint(1, 20) elif chapter == 13: verse = random.randint(1, 35) elif chapter == 14: verse = random.randint(1, 27) elif chapter == 15: verse = random.randint(1, 20) elif chapter == 16: verse = random.randint(1, 24) elif chapter == 17: verse = random.randint(1, 28) elif chapter == 18: verse = random.randint(1, 78) else: print("Invalid chapter number. Quitting...") quit() return verse # Generate a random chapter number and use that as input for the above function. Returns chapter and verse numbers def random_chapter_verse(): chapter = random.randint(1, 18) verse = get_verse_numbers(chapter) return chapter, verse # Concatenate chapter and verse numbers with the website link to scrape the specific verse def generate_link(chapter, verse): link = "https://www.holy-bhagavad-gita.org/chapter/" + str(chapter) + "/verse/" + str(verse) return link # Main function which generates chapter & verse numbers, creates a link, scrapes the verse, and formats it properly def main(): chapter, verse = random_chapter_verse() link = generate_link(chapter, verse) page = requests.get(link) soup = BeautifulSoup(page.content, 'html.parser') transliteration = soup.find("div", {"id": "transliteration"}) formatted_transliteration = get_p(transliteration) print("Gita Shlok from chapter " + str(chapter) + ", verse " + str(verse) + ".") print("") print(formatted_transliteration) # Run the main function if __name__ == '__main__': main()