Iceloof / GoogleNews

Script for GoogleNews
https://pypi.org/project/GoogleNews/
MIT License
314 stars 88 forks source link

Multiple country search, is this possible? #121

Open Denon9205 opened 10 months ago

Denon9205 commented 10 months ago

googlenews_de = GoogleNews(lang='de', region='DE', encode='utf-8') googlenews_us = GoogleNews(lang='en', region='US', encode='utf-8') googlenews_uk = GoogleNews(lang='en', region='GB', encode='utf-8') googlenews_ch = GoogleNews(lang='de', region='CH', encode='utf-8') googlenews_at = GoogleNews(lang='de', region='AT', encode='utf-8')

Is a multiple search possible, if so is that correct?

I often get e.g. German links from the US or UK search and vice versa.

HurinHu commented 10 months ago

Google never gaurantee the accurate result

Denon9205 commented 10 months ago

I have created a workaround.

def is_valid_url_endings(url: str, country_name: str) -> bool: valid_endings_per_region = { "USA": [".com", ".co.uk"], "UK": [".com", ".co.uk"], "Deutschland": [".de", ".at", ".ch"], "Schweiz": [".de", ".at", ".ch"], "Oesterreich": [".de", ".at", ".ch"], }

parsed_url = urlparse(url)
domain_parts = parsed_url.netloc.split('.')
domain_ending = '.' + domain_parts[-1]

valid_endings = valid_endings_per_region.get(country_name, [])

if domain_ending in valid_endings:
    logging.info(f"Die URL '{url}' hat die zulässige Endung '{domain_ending}' für das Land '{country_name}' und wird als gültig betrachtet.")
    return True
else:
    logging.warning(f"Die URL '{url}' hat keine der zulässigen Endungen {valid_endings} für das Land '{country_name}' und wird als ungültig betrachtet.")
    return False