-
Notifications
You must be signed in to change notification settings - Fork 12.3k
/
Google_News.py
39 lines (28 loc) · 1.19 KB
/
Google_News.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
36
37
38
39
import ssl
from urllib.request import urlopen
from bs4 import BeautifulSoup as soup
def news(xml_news_url, counter):
"""Print select details from a html response containing xml
@param xml_news_url: url to parse
"""
context = ssl._create_unverified_context()
Client = urlopen(xml_news_url, context=context)
xml_page = Client.read()
Client.close()
soup_page = soup(xml_page, "xml")
news_list = soup_page.findAll("item")
i = 0 # counter to print n number of news items
for news in news_list:
print(f"news title: {news.title.text}") # to print title of the news
print(f"news link: {news.link.text}") # to print link of the news
print(f"news pubDate: {news.pubDate.text}") # to print published date
print("+-" * 20, "\n\n")
if i == counter:
break
i = i + 1
# you can add google news 'xml' URL here for any country/category
news_url = "https://news.google.com/news/rss/?ned=us&gl=US&hl=en"
sports_url = "https://news.google.com/news/rss/headlines/section/topic/SPORTS.en_in/Sports?ned=in&hl=en-IN&gl=IN"
# now call news function with any of these url or BOTH
news(news_url, 10)
news(sports_url, 5)