http://ajax.googleapis.com/ajax/services/search/images?q=sato&v=1.0&rsz=1
2.Google画像検索API + shellの利用
curl -s 'http://ajax.googleapis.com/ajax/services/search/images?q=sato&v=1.0&rsz=1' | tr , \\n | grep "url" | sed -e 's/"url"://g' -e 's/"//g'→Google画像検索の1番最初にマッチした画像のURLが表示される.
3.ツールの作成
get_image.sh
#!/bin/sh target_list=`/usr/bin/mysql -u root -p[password] arts -e "select name from sa2012"` for name in $target_list do image_url=`curl -s 'http://ajax.googleapis.com/ajax/services/search/images?q='$name'&v=1.0&rsz=1' | tr , '\\n' | grep "url" | sed -e 's/"url"://g' -e 's/"//g'` echo $name" --> "$image_url curl -s -o img/$name.jpg $image_url done exit 0
※{password}は自自身のパスワードに置き換えること.
4.ツールを使用することで,DBに登録されたユーザの画像を,ユーザー名をファイル名として取得することが可能になったので,リストに画像も併せて表示する.
list6.html
<html> <head> <meta http-equiv=content-type content="text/html; charset=UTF-8"> <title>real-time search sample(AJAX)</title> <STYLE TYPE="text/css"> <!-- .table1 { width: 400px; border-collapse: collapse; border: 1px #708090 solid; } .table1 TD { border: 1px #708090 solid; } --> </STYLE> <script type="text/javascript" src="xmlhttp.js"></script> <script type="text/javascript"> <!-- findText = findTextOld = ""; function loadXmlFile(fName){ httpObj = createXMLHttpRequest(displayData); if (httpObj){ httpObj.open("GET",fName,true); httpObj.send(null); } } function displayData(){ if ((httpObj.readyState == 4) && (httpObj.status == 200)){ xmlData = httpObj.responseXML; $("result").innerHTML = parseXmlData(httpObj.responseText); }else{ $("result").innerHTML = "Loading ..."; } } function parseXmlData(xmlData){ $("result").innerHTML = xmlData; idListTags = document.getElementsByTagName("id"); numListTags = document.getElementsByTagName("num"); nameListTags = document.getElementsByTagName("name"); idLen = idListTags.length; resultText = "<table class='table1'><tr><th colspan=5>list</th></tr><tr><td><b>id</b></td><td><b>num</b></td><td><b>name</b></td><td><b>image</b></td></tr>"; for(i=0; i<idLen; i++){ id = idListTags[i].childNodes[0].nodeValue; num = numListTags[i].childNodes[0].nodeValue; name = nameListTags[i].childNodes[0].nodeValue; str = name.match(findText); if (str){ resultText += "<tr><td>" + id + "</td><td><a href='http://10.2.5." + num + "' target='_blank'>" + num + "</a></td><td>" + name + "</td><td><img height=100 width=100 src='img/" + name + ".jpg'></td></tr>"; } } resultText += "</table>"; return resultText; } function inputCheck(){ findText = document.ajaxForm.requestText.value; if (findText != findTextOld) { str_search = "./backend.php?search_key=" + findText loadXmlFile(str_search); findTextOld = findText; }else{ // $("result").innerHTML = "Loading ..."; } setTimeout(" inputCheck()",500); // 0.5秒毎 } window.onload = inputCheck; // --> </script> </head> <body> <form name="ajaxForm" onSubmit="return false"> <input type="text" value="a" name="requestText"> </form> <div id="result"></div> </body> </html>
0 件のコメント:
コメントを投稿