web-dev-qa-db-fra.com

API Google Actualités XML: utilisez les paramètres de pays / langue

Je souhaite m'abonner à un flux RSS/XML de Google Actualités qui capture la requête suivante:

Articles mentionnant "studie" (allemand pour "étude"), écrits en allemand, émanant de n'importe quel pays.

J'utilise https://news.google.com/rss/search , mais pour cet exemple, il est plus facile de voir la sortie de l'interface utilisateur sur https://news.google. com/search , je vais donc utiliser la dernière base d'URL dans cet exemple.

Maintenant, dans le référence de l'API XML , Google mentionne quatre paramètres différents qui influencent la langue ou le pays:

  • hl (langue hôte): la langue que l'utilisateur final est censé saisir. C'est-à-dire qu'un locuteur de langue anglaise tape "étude" et Google suppose que le terme est en anglais, puis traduit automatiquement les résultats reviennent à l'anglais. Pour moi, naviguer vers redirigera une URL avec hl=en-US (l'URL complète est https://news.google.com/?hl=en-US&gl=US&ceid=US:en ).

  • gl: augmente les résultats de recherche dont le pays d'origine correspond à la valeur du paramètre. La valeur par défaut dans mon navigateur Web est gl=US.

  • lr (restriction linguistique): restreint les résultats de la recherche aux documents écrits dans une langue particulière

  • cr (restriction du pays): restreint les résultats de la recherche aux documents provenant d'un pays particulier

Sur la base de tout ce qui précède, cela impliquerait une URL de *:

https://news.google.com/search?q=study&hl=en-US&lr=lang_de

Cette tentative, cependant, échoue lamentablement; il affiche les résultats en anglais des États-Unis et il redirige 302 vers:

https://news.google.com/search?q=study&lr=lang_de&hl=en-US&gl=US&ceid=US:en

Donc, à cette fin:

  • Comment puis-je structurer correctement les paramètres d'URL pour capturer "des articles mentionnant" studie "(allemand pour" étude "), écrits en allemand, de n'importe quel pays."?
  • Qu'est-ce que c'est que ceid et pourquoi est-il documenté absolument nulle part par Google?

* C'est à dire.:

>>> import urllib.parse
>>> urllib.parse.parse_qs('q=study&hl=en-US&lr=lang_de')                                                                                                     
{'q': ['study'], 'hl': ['en-US'], 'lr': ['lang_de']}

Associé mais ne résolvant rien de tout cela:

3
Brad Solomon

J'utilise l'URL suivante, cela fonctionne pour moi:

https://news.google.com/rss?q=studie&hl=de-DE&gl=DE&ceid=DE:de

vous pouvez également rechercher dans les rubriques, veuillez vous référer à cette réponse: format URL du flux RSS de Google Actualités

1
Eugene Gamov

La nouvelle URL de Google Nouveau RSS a été modifiée. Vous pouvez utiliser le format suivant pour la récupération. Des exemples peuvent également être vus ici .

usage: gnrss2opml.py [-h] [-o OUTPUT] [-c COUNTRY] [-l LANGUAGE] [-s]
                     [-t [TOPIC [TOPIC ...]]] [-g [LOCATION [LOCATION ...]]]
                     [-q [QUERY [QUERY ...]]]

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        output file name (default: print to stdout)
  -c COUNTRY, --country COUNTRY
                        country / Google News edition (default: us)
  -l LANGUAGE, --language LANGUAGE
                        language (default: en)
  -s, --stories         include Top Stories
  -t [TOPIC [TOPIC ...]], --topics [TOPIC [TOPIC ...]]
                        list of topics, will be converted to uppercase
                        (default: WORLD NATION BUSINESS TECHNOLOGY
                        ENTERTAINMENT SPORTS SCIENCE HEALTH)
  -g [LOCATION [LOCATION ...]], --locations [LOCATION [LOCATION ...]]
                        list of geographic locations (default: None)
  -q [QUERY [QUERY ...]], --queries [QUERY [QUERY ...]]
                        list of search queries (default: None)

EDIT1:

Le code de langue à 2 lettres et le code de pays peuvent être spécifiés dans l'argument.

Obtenez les codes de ici

0
Sreeram Nair