diff --git a/README.md b/README.md index 59ef144..2aa0405 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,97 @@ # news-retriever -To retrieve mathematics-related news using Python, you typically scrape trusted sources. Here are some examples. \ No newline at end of file +To retrieve mathematics-related news using Python, we typically scrape trusted sources. Here are some examples. + +## Method 1: Use Google News RSS + +For example, we can fetch math-related news via RSS: + +``` +import requests +import xml.etree.ElementTree as ET + +rss_url = "https://news.google.com/rss/search?q=mathematics" + +response = requests.get(rss_url) +root = ET.fromstring(response.content) + +for item in root.findall(".//item")[:5]: + title = item.find("title").text + link = item.find("link").text + print("Title:", title) + print("Link:", link) + print("-" * 40) +``` + +Running this code gives: + +``` +$ python3 example1.py +Title: Reality cannot be turned into mathematics - IAI TV +Link: https://news.google.com/rss/articles/CBMigAFBVV95cUxNcFlOYUo1SWgwUUNXZDRXRU5US0d5MjJleEE0Z0ltN3g5SUJCRUkyR3dKbVRQNTExUWE3bGsyVzlqMlkxemNLME1kdkVuX2RJUmZJX1JJMWx5ZHpBM2dqZWJreVYxWHRJSHpuTW5jN2hDdkxmS0FPV1pRVWtxc0JaRA?oc=5 +---------------------------------------- +Title: Mathematical framework maps landscape of student knowledge via short quizzes - Phys.org +Link: https://news.google.com/rss/articles/CBMijgFBVV95cUxQOHVYa1lFU2J2dlk2RXc2UFZ3WC1XOEpldURwalJiV2lIRnVZTlRUbDlsa05kakd5cUh2ZC1NTkNLUEJlQ3o4ZkRFaDFTbG9JVk1GZlJ1bHFRQXB0U20yNWJmUTk0M0NJQkdmNlZCQWNIcV9KdVA2eDhyNUFSMDczbF9sQXBHS0NfcUxqSUVB?oc=5 +---------------------------------------- +Title: Mathematicians can’t agree on whether 0.999... equals 1 - Scientific American +Link: https://news.google.com/rss/articles/CBMimwFBVV95cUxNbVlzQTEtMThYZUpzYVgxa3I2Q0xkV0FvSjRFSV9ENEVhVkNCb1lBREplSjNwLWhvWW9PQ1dXaDR0MVRPUjZrZnNGTU1ZaENsSzJBY1MzdnJLQmNtckF2b3NyZklGd2dVNnlON2NXVGhKR0VlNW1uWVJ5UVRKOU5DUWNTdjZWVG9PWGtSOXFXSzM1c3U0TDRyWU5kdw?oc=5 +---------------------------------------- +Title: The mathematical crimes of the Young Sherlock Holmes series - The Conversation +Link: https://news.google.com/rss/articles/CBMimgFBVV95cUxPRHl5YzQ4TWJZbDZsZDFiQ1BIaXBrTkdxcm5WMDRpak8yT1ZvdXFqNkVWb2hUeld6dl9lRUNwZWRmbzNMbTZIei1ITkdST3lIaDlCSFkyYndIcTBfRHNXNzdBQkJ3aURNQTdnY24yZzh3QkpoVGxYdDNyMUlwUFNjRWJYdjBPZ0VvUTlubWdHQjg2am4tUFZETEJn?oc=5 +---------------------------------------- +Title: ‘Nobel of maths’ for 71-year-old who cracked century-old enigma - The Times +Link: https://news.google.com/rss/articles/CBMiiwNBVV95cUxOdkphMDM5TzFNS1d3R3ZzbHNXdWFKRGRzQnNhMnN1NlhQYTZkT3R5QWRQZ3RoRVZ4VVk2eGNMSVZ0MTNwOVBmRWkyc0J4aTBwWFRYNDd5Q082b1dXTEw5Zm9LcExPQ0RmaHJjMFZxS3A0N25NMlNQYk5HYlhzaFQ1MnBxblZCOEhsSnlVcjktYjNBTHdTWl82Tk9LV2I0SUlDZnhQMjdEM25ZWTVjdVQyVjF4bVdjT3A2VGtoTWwzUjU0X2FHYzJfTkV4NFRGeWszNVV4dExEbmV2SkVlNWNOT1ZncEllem8xbGo1NkFtN0M5elR2YW8wYm92ZE1meldpemJWWW9MWU5KMjdDdW8yVmZNT1FTWXFpUlhVbFdBcUZjdnFpMkw2WlNtVHVsTTZ4Wnk0clE3RVQwaDFoZURxTHh1WEFQbEowOWJmcU9HUF9iSXZBODN6LXJvU3lyNktVME5nT3djQ0FYOVBMT2RVRTdYdndCUWVsQ1Vfb0hLYW5OcG9Qb0JMaDlURQ?oc=5 +---------------------------------------- +``` + +## Method 2: Use Python Libraries +Install feedparser (for RSS feeds): + +``` +$ python3 -m venv news-retriever +$ source news-retriever/bin/activate +$ pip install feedparser +``` + +Example with feedparser: + +``` +import feedparser + +feed = feedparser.parse("https://news.google.com/rss/search?q=mathematics") + +for entry in feed.entries[:5]: + print(entry.title) + print(entry.link) + print("-" * 40) +``` + +Running this code gives: + +``` +$ python example2.py +Reality cannot be turned into mathematics - IAI TV +https://news.google.com/rss/articles/CBMigAFBVV95cUxNcFlOYUo1SWgwUUNXZDRXRU5US0d5MjJleEE0Z0ltN3g5SUJCRUkyR3dKbVRQNTExUWE3bGsyVzlqMlkxemNLME1kdkVuX2RJUmZJX1JJMWx5ZHpBM2dqZWJreVYxWHRJSHpuTW5jN2hDdkxmS0FPV1pRVWtxc0JaRA?oc=5 +---------------------------------------- +Mathematical framework maps landscape of student knowledge via short quizzes - Phys.org +https://news.google.com/rss/articles/CBMijgFBVV95cUxQOHVYa1lFU2J2dlk2RXc2UFZ3WC1XOEpldURwalJiV2lIRnVZTlRUbDlsa05kakd5cUh2ZC1NTkNLUEJlQ3o4ZkRFaDFTbG9JVk1GZlJ1bHFRQXB0U20yNWJmUTk0M0NJQkdmNlZCQWNIcV9KdVA2eDhyNUFSMDczbF9sQXBHS0NfcUxqSUVB?oc=5 +---------------------------------------- +Mathematicians can’t agree on whether 0.999... equals 1 - Scientific American +https://news.google.com/rss/articles/CBMimwFBVV95cUxNbVlzQTEtMThYZUpzYVgxa3I2Q0xkV0FvSjRFSV9ENEVhVkNCb1lBREplSjNwLWhvWW9PQ1dXaDR0MVRPUjZrZnNGTU1ZaENsSzJBY1MzdnJLQmNtckF2b3NyZklGd2dVNnlON2NXVGhKR0VlNW1uWVJ5UVRKOU5DUWNTdjZWVG9PWGtSOXFXSzM1c3U0TDRyWU5kdw?oc=5 +---------------------------------------- +The mathematical crimes of the Young Sherlock Holmes series - The Conversation +https://news.google.com/rss/articles/CBMimgFBVV95cUxPRHl5YzQ4TWJZbDZsZDFiQ1BIaXBrTkdxcm5WMDRpak8yT1ZvdXFqNkVWb2hUeld6dl9lRUNwZWRmbzNMbTZIei1ITkdST3lIaDlCSFkyYndIcTBfRHNXNzdBQkJ3aURNQTdnY24yZzh3QkpoVGxYdDNyMUlwUFNjRWJYdjBPZ0VvUTlubWdHQjg2am4tUFZETEJn?oc=5 +---------------------------------------- +‘Nobel of maths’ for 71-year-old who cracked century-old enigma - The Times +https://news.google.com/rss/articles/CBMiiwNBVV95cUxPbmVEUWY4QktyNUtrSUptdGw1VHRUVzBPTkdfWGV0aXhGNWpxX3pWeWRvam9scEFYcHUyRlFTMnJVVVcxUVlwMl9oVkpSNDNfYzBkaVdhLVQxUU5YeW5uZWJXLVJQUVdhSjM0MzJsUl85ekduR3FNRGl3eXlYN19ZNzZFOW41eThSdjBVRkxOb2swYnp3N2gtWVNOZW1Rb1JHMDBhRE12SDdSNlJiQWxDMDd5dlRDb3JsUC1XaHgtdVc1eUxCbzYtc2V6dHNSQnRiTXBoMEhzbjRBU1RPTXVCLXU2MHdVTmxUYnJyRUx0ZHozNlZzY1RjQUlybzNZUzJNZnFsb2t2TVQzZUQxS1A2b29XVS1Zcm1qMFF5aHNJQ2lpc1hYNmRtdVN0aWNDLVdRekhZbEprUDZJSk1TV3B2YVhhd0xma3lYbWNBUWkwMXZLU2ZwaGdVUVhzS0lKdTdfMUowWG1oblFUdnl5T1djTDd5Mkd5WjR3ZXdMWTFXQnFfSnpFcHpjZWxQVQ?oc=5 +---------------------------------------- +``` + +## Tips for Better Results +1. Use keywords like: +- "pure mathematics" +- "applied math" +- "math research" +- "number theory breakthrough" +2. Filter by date or source for relevance. +3. Combine with scheduling (e.g., cron job) to automate daily updates. diff --git a/example1.py b/example1.py new file mode 100644 index 0000000..87c9d54 --- /dev/null +++ b/example1.py @@ -0,0 +1,14 @@ +import requests +import xml.etree.ElementTree as ET + +rss_url = "https://news.google.com/rss/search?q=mathematics" + +response = requests.get(rss_url) +root = ET.fromstring(response.content) + +for item in root.findall(".//item")[:5]: + title = item.find("title").text + link = item.find("link").text + print("Title:", title) + print("Link:", link) + print("-" * 40) diff --git a/example2.py b/example2.py new file mode 100644 index 0000000..4853e7b --- /dev/null +++ b/example2.py @@ -0,0 +1,8 @@ +import feedparser + +feed = feedparser.parse("https://news.google.com/rss/search?q=mathematics") + +for entry in feed.entries[:5]: + print(entry.title) + print(entry.link) + print("-" * 40)