Google画像検索APIを使用しています。昨日までは機能していましたが、今日の朝には「このAPIはもう利用できません」と書かれています
正式に閉鎖されていますか、それとも私の側のエラーですか
リクエスト
https://ajax.googleapis.com/ajax/services/search/images?v=1.0&rsz=8&q=cute+kittens
応答
{"responseData": null, "responseDetails": "This API is no longer available.", "responseStatus": 403}
これは使用される完全なURLテンプレートです
不要なパラメータを削除できます。
https://www.googleapis.com/customsearch/v1?q= {searchTerms}&num = {count?}&start = {startIndex?}&lr = {language?}&safe = {safe?} &cx = {cx?}&cref = {cref?}&sort = {sort?}&filter = {filter?}&gl = {gl?}&cr = {cr?}&googlehost = {googleHost?}&c2coff = {disableCnTwTranslation?}&hq = {hq?}&hl = {hl?}&siteSearch = {siteSearch?}&siteSearchFilter = {siteSearchFilter?}&exactTerms = {exactTerms?}&excludeTerms = {excludeTerms?}&linkSite = {linkSite?}&orTerms = {orTerms?}&relatedSite = {relatedSite ?}&dateRestrict = {dateRestrict?}&lowRange = {lowRange?}&highRange = {highRange?}&searchType = {searchType}&fileType = {fileType?}&rights = {rights?}&imgSize = {imgSize?}&imgType = {imgType?}&imgColorType = {imgColorType?}&imgDominantColor = {imgDominantColor?}&alt = json
私は使用しています
私が見つけた答えは、Googleのカスタム検索エンジン(CSE)APIを使用することでした。これは1日あたり100件の無料リクエストに制限されることに注意してください。
cx
を作成し、それを変更して画像を検索するcx
を見つけることができます。APIエンドポイントのURLは https://www.googleapis.com/customsearch/v1
です
このAPIには次のJSONパラメーターが使用されます。
q
:検索テキストを指定しますnum
:結果の数を指定します。 1から10までの整数値が必要です(両端を含む)start
:検索の開始点となる結果の「オフセット」。 1〜101の整数値が必要です。imgSize
:画像のサイズ。 "medium"
を使用しましたsearchType
:"image"
に設定する必要がありますfiletype
:イメージのファイルタイプを指定します。私は `" jpg "を使用しましたが、ファイル拡張子が重要でない場合は、これを省略できます。key
: https://console.developers.google.com/ から取得したAPIキーcx
:前のセクションのカスタム検索エンジンID上記のパラメーターをJSONとしてAPIエンドポイントに渡すことで、GET
リクエストを行うだけです(上記にもリストされています)。
注:検索エンジンの設定でリファラーのリストを設定した場合、ブラウザーからURLにアクセスすることはできません。このリストで指定されたサーバーからAJAX呼び出し(または別の言語からの同等の呼び出し)を行う必要があります。構成設定で指定されたリファラーに対してのみ機能します。
リファレンス: https://developers.google.com/custom-search/json-api/v1/reference/cse/list
カスタム画像検索APIで画像を検索できるようになりました。
次の2つの手順でこれを行うことができます。
1)CUSTOM_SEARCH_IDを取得
- https://cse.google.ru/cse/all に移動します
ここで、新しい検索エンジンを作成する必要があります。これを行い、そこで画像検索を有効にします。
画面(ロシア語です...ごめんなさい)
次に、この検索エンジンIDを取得します。これを行うには、[コードを取得]ボタンを押します。
そして、cx = "ここにあなたのCUSTOM_SEARCH_IDがあります"の行があります:
OK。完了しました。今度は2番目のステップです。
2)SERVER_KEYを取得する
Googleコンソールにアクセスします- https://console.developers.google.com/project
を押してプロジェクトボタンを作成し、名前とその他の必要な情報を入力します。このプロジェクトを選択して、Apiを有効にする カスタム検索エンジンを見つけます。
次に、資格情報に移動して、新しいサーバーキーを作成する必要があります。
OK。これで、画像検索を使用できます。
クエリ:
https://www.googleapis.com/customsearch/v1?key=SERVER_KEY&cx=CUSTOM_SEARCH_ID&q=flower&searchType=image&fileType=jpg&imgSize=xlarge&alt=json
SERVER_KEYとCUSTOM_SEARCH_IDを置き換えて、このリクエストを呼び出します。
制限:無料で検索できるのは1日あたり100枚の画像のみです。ご清聴ありがとうございました。
これが自分の目的のためであり(本番用ではない)、Google画像検索を悪用する予定がない場合は、 JSOUP を使用して、Google検索結果から最初の画像URLを抽出するだけです。
例:最初のサムネイルの画像URLを取得するコード:
public static String FindImage(String question, String ua) {
String finRes = "";
try {
String googleUrl = "https://www.google.com/search?tbm=isch&q=" + question.replace(",", "");
Document doc1 = Jsoup.connect(googleUrl).userAgent(ua).timeout(10 * 1000).get();
Element media = doc1.select("[data-src]").first();
String finUrl = media.attr("abs:data-src");
finRes= "<a href=\"http://images.google.com/search?tbm=isch&q=" + question + "\"><img src=\"" + finUrl.replace(""", "") + "\" border=1/></a>";
} catch (Exception e) {
System.out.println(e);
}
return finRes;
}
ガイド:
質問-画像検索用語
ua-ブラウザーのユーザーエージェント
Yahoo Boss API は合理的な代替品ですが、無料ではなく、結果もそれほど良くありません。
更新:YAHOO BOSS JSON Search APIは2016年3月31日に終了します