web-dev-qa-db-ja.com

Google News XML API:国/言語パラメーターを使用する

次のクエリをキャプチャしたGoogleニュースのRSS/XMLフィードを購読したいと思います。

「studie」(ドイツ語で「study」の略)に言及している記事で、ドイツ語で書かれており、どの国からも発行されています。

私は https://news.google.com/rss/search を使用していますが、この例では、UIの出力を https://news.google。 com/search なので、この例では後者のURLベースを使用します。

現在、Googleは XML APIリファレンス で、言語または国に影響するfour異なるパラメーターについて言及しています。

  • hl(ホスト言語):エンドユーザーが入力すると想定される言語。つ​​まり、英語のスピーカーは「勉強」と入力し、Googleはその用語が英語であると想定し、機械翻訳します。結果は英語に戻ります。私にとって、ナビゲートするとhl=en-USでURLがリダイレクトされます(完全なURLは https://news.google.com/?hl=en-US&gl=US&ceid=US:en です)。

  • gl:原産国がパラメーター値と一致する検索結果を後押しします。私のWebブラウザーのデフォルトはgl=USです。

  • lr(言語制限):検索結果を特定の言語で記述されたドキュメントに制限します

  • cr(国制限):検索結果を特定の国で作成されたドキュメントに制限します

上記のすべてに基づいて、それは*のURLを意味します:

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

ただし、その試みは無残に失敗します。米国からの英語の結果を表示し、302は以下にリダイレクトします。

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

したがって、そのために:

  • 「どの国からでもドイツ語で書かれた「studie」(「study」のドイツ語)に関する記事」をキャプチャするために、URLパラメータを適切に構成するにはどうすればよいですか?
  • 一体何がceidであり、なぜそれがGoogleのどこにもまったく文書化されていないのですか?

*すなわち:

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

関連しているが、これのいずれも解決していない:

3
Brad Solomon

私は次のURLを使用していますが、うまくいきます。

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

トピックで検索することもできます。この回答を参照してください: GoogleニュースRSSフィードのURL形式

1
Eugene Gamov

Google New RSSの新しいURLが変更されました。フェッチには次の形式を使用できます。例も見ることができます here

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:

引数には2文字の言語コードと国コードを指定できます。

こちら からコードを取得します

0
Sreeram Nair