次のクエリをキャプチャした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を意味します:
ただし、その試みは無残に失敗します。米国からの英語の結果を表示し、302は以下にリダイレクトします。
https://news.google.com/search?q=study&lr=lang_de&hl=en-US&gl=US&ceid=US:en
したがって、そのために:
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']}
関連しているが、これのいずれも解決していない:
私は次のURLを使用していますが、うまくいきます。
https://news.google.com/rss?q=studie&hl=de-DE&gl=DE&ceid=DE:de
トピックで検索することもできます。この回答を参照してください: GoogleニュースRSSフィードのURL形式
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文字の言語コードと国コードを指定できます。
こちら からコードを取得します