[
自宅サーバーWebRing
┃
前
|ID=54
前後5表示
|
次
┃
乱移動
|
サイト一覧
]
このサイト内
書籍 DVD CD
Google(日本語)
Google(Web全体)
Google(イメージ)
Google(キャッシュ)
Yahoo! JAPAN
goo 英和
goo 和英
goo 国語
goo 新語
サイトマップ
リンク集
ダウンロード
フォーラム
Users Wiki
最新情報
TOP
»
UsersWiki
»
nao-pon
»
blog
» 2003-12-09-1 をテンプレートにして作成
|
一覧
検索
最新
ヘルプ
ページへ戻る
履歴
リンク元
印刷
ADSL復活記念!Google APIs で遊ぶ。
をテンプレートにして作成
UsersWiki
:nao-pon/blog/2003-12-09-1 をテンプレートにして作成
開始行:
**ADSL復活記念!Google APIs で遊ぶ。
RIGHT:&tag(ネット,プログラミング);
ADSLが復活した記念に、Google Web APIs で遊んでみた。~
まずは、参考サイト([[Google Web APIsで遊ぼう:http://www.a...
+[[Google Web APIs - Home:http://www.google.com/apis/]]か...
+[[Create a Google Account:https://www.google.com/account...
+あとは、アクセス方法を考える。
このアクセス方法が、一番悩んだところだったけど、SOAP 呼び...
得られたデータの解析は、[[PHP]] の XMLパーサーを使えばい...
結構おもしろいので、このサイトの検索で利用してみました。
***簡単なソースコード
''get_result_by_google("EUC-JPでURLでコードした検索語")''...
-戻り配列['title']:ページタイトル
-戻り配列['url']:ページURL
-戻り配列['snippet']:検索語周辺のテキスト
#code(){{{
function get_result_by_google($word,$max=10,$start=0)
{
$res = result_google_api($word);
$data = str_replace(array("\r","\n"),"",$res['data']);
$data = str_replace(array("<",">","&"),array(...
$data = str_replace("<br> ","",$data);
$ret = array();
if (preg_match_all("/<item[^>]*>(.+?)<\/item>/i",$data,...
{
$i = 0;
foreach($arg[1] as $item)
{
if (preg_match("/<title[^>]*>(.*)<\/title>/",$item,...
if (preg_match("/<snippet[^>]*>(.*)<\/snippet>/",$i...
if (preg_match("/<URL[^>]*>(.*)<\/URL>/",$item,$mat...
$i++;
}
}
return $ret;
}
function result_google_api($word,$max=10,$start=0)
{
$word = mb_convert_encoding($word, "UTF-8", "EUC-JP");
$license_key = ""; //ライセンスキーを設定
$data = "<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoa...
xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\">
<SOAP-ENV:Body>
<ns1:doGoogleSearch xmlns:ns1=\"urn:GoogleSearch\"
SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/...
<key xsi:type=\"xsd:string\">$license_key</key>
<q xsi:type=\"xsd:string\">$word</q>
<start xsi:type=\"xsd:int\">$start</start>
<maxResults xsi:type=\"xsd:int\">$max</maxResults>
<filter xsi:type=\"xsd:boolean\">true</filter>
<restrict xsi:type=\"xsd:string\"></restrict>
<safeSearch xsi:type=\"xsd:boolean\">false</safeSearch>
<lr xsi:type=\"xsd:string\">lang_ja</lr>
<ie xsi:type=\"xsd:string\">utf8</ie>
<oe xsi:type=\"xsd:string\">utf8</oe>
</ns1:doGoogleSearch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>";
$query = 'POST '."/search/beta2"." HTTP/1.0\r\n";
$query .= "Host: "."api.google.com"."\r\n";
$query .= "Content-Type: text/xml; charset=utf-8\r\n";
$query .= 'Content-Length: '.strlen($data)."\r\n";
$query .= "\r\n";
$query .= $data;
$fp = fsockopen("api.google.com",80,$errno,$errstr,30);
if (!$fp)
{
return array(
'query' => $query, // Query String
'rc' => $errno, // エラー番号
'header' => '', // Header
'data' => $errstr // エラーメッセージ
);
}
fputs($fp, $query);
$response = '';
while (!feof($fp))
{
$response .= fgets($fp,4096);
}
fclose($fp);
$response = mb_convert_encoding($response, "EUC-JP", "U...
$resp = explode("\r\n\r\n",$response,2);
$rccd = explode(' ',$resp[0],3); // array('HTTP/1.1','2...
return array(
'query' => $query, // Query String
'rc' => (integer)$rccd[1], // Response Code
'header' => $resp[0], // Header
'data' => $resp[1] // Data
);
}
}}}
----
#comment(,btn:つっこみ)
終了行:
**ADSL復活記念!Google APIs で遊ぶ。
RIGHT:&tag(ネット,プログラミング);
ADSLが復活した記念に、Google Web APIs で遊んでみた。~
まずは、参考サイト([[Google Web APIsで遊ぼう:http://www.a...
+[[Google Web APIs - Home:http://www.google.com/apis/]]か...
+[[Create a Google Account:https://www.google.com/account...
+あとは、アクセス方法を考える。
このアクセス方法が、一番悩んだところだったけど、SOAP 呼び...
得られたデータの解析は、[[PHP]] の XMLパーサーを使えばい...
結構おもしろいので、このサイトの検索で利用してみました。
***簡単なソースコード
''get_result_by_google("EUC-JPでURLでコードした検索語")''...
-戻り配列['title']:ページタイトル
-戻り配列['url']:ページURL
-戻り配列['snippet']:検索語周辺のテキスト
#code(){{{
function get_result_by_google($word,$max=10,$start=0)
{
$res = result_google_api($word);
$data = str_replace(array("\r","\n"),"",$res['data']);
$data = str_replace(array("<",">","&"),array(...
$data = str_replace("<br> ","",$data);
$ret = array();
if (preg_match_all("/<item[^>]*>(.+?)<\/item>/i",$data,...
{
$i = 0;
foreach($arg[1] as $item)
{
if (preg_match("/<title[^>]*>(.*)<\/title>/",$item,...
if (preg_match("/<snippet[^>]*>(.*)<\/snippet>/",$i...
if (preg_match("/<URL[^>]*>(.*)<\/URL>/",$item,$mat...
$i++;
}
}
return $ret;
}
function result_google_api($word,$max=10,$start=0)
{
$word = mb_convert_encoding($word, "UTF-8", "EUC-JP");
$license_key = ""; //ライセンスキーを設定
$data = "<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoa...
xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\">
<SOAP-ENV:Body>
<ns1:doGoogleSearch xmlns:ns1=\"urn:GoogleSearch\"
SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/...
<key xsi:type=\"xsd:string\">$license_key</key>
<q xsi:type=\"xsd:string\">$word</q>
<start xsi:type=\"xsd:int\">$start</start>
<maxResults xsi:type=\"xsd:int\">$max</maxResults>
<filter xsi:type=\"xsd:boolean\">true</filter>
<restrict xsi:type=\"xsd:string\"></restrict>
<safeSearch xsi:type=\"xsd:boolean\">false</safeSearch>
<lr xsi:type=\"xsd:string\">lang_ja</lr>
<ie xsi:type=\"xsd:string\">utf8</ie>
<oe xsi:type=\"xsd:string\">utf8</oe>
</ns1:doGoogleSearch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>";
$query = 'POST '."/search/beta2"." HTTP/1.0\r\n";
$query .= "Host: "."api.google.com"."\r\n";
$query .= "Content-Type: text/xml; charset=utf-8\r\n";
$query .= 'Content-Length: '.strlen($data)."\r\n";
$query .= "\r\n";
$query .= $data;
$fp = fsockopen("api.google.com",80,$errno,$errstr,30);
if (!$fp)
{
return array(
'query' => $query, // Query String
'rc' => $errno, // エラー番号
'header' => '', // Header
'data' => $errstr // エラーメッセージ
);
}
fputs($fp, $query);
$response = '';
while (!feof($fp))
{
$response .= fgets($fp,4096);
}
fclose($fp);
$response = mb_convert_encoding($response, "EUC-JP", "U...
$resp = explode("\r\n\r\n",$response,2);
$rccd = explode(' ',$resp[0],3); // array('HTTP/1.1','2...
return array(
'query' => $query, // Query String
'rc' => (integer)$rccd[1], // Response Code
'header' => $resp[0], // Header
'data' => $resp[1] // Data
);
}
}}}
----
#comment(,btn:つっこみ)
ページ名:
ぺージ情報
ぺージ名 :
nao-pon/blog/2003-12-09-1
ページ別名 :
未設定
ページオーナー :
nao-pon
閲覧可
グループ :
すべての訪問者
ユーザー :
すべての訪問者
編集可
グループ :
なし
ユーザー :
ゲスト
Counter: 0, today: 0, yesterday: 0
メインメニュー
ホーム
価格比較 百貨
UsersWiki
新規ページ作成
最新ページ一覧
全ページ一覧
全コメント一覧
ヘルプ
xpwiki
お問い合わせ
ファイルマネージャー
ログイン
ユーザー名:
パスワード:
パスワード紛失
|
新規登録
最近の更新
最新の20件
2023-05-14
nao-pon
/
gmap + gmap_street + gmap_insertmarker
nao-pon
/
googlemaps2
2023-03-22
PublicBlog
/
The Importance of QFP in PCB
2023-02-28
FrontPage
/
PCB terminology you must know
2023-01-20
nao-pon
/
blog
/
ESP8266 を壊してしまいました しかも続けて2回も
2022-09-22
nao-pon
/
blog
/
ESP32 + ESPHome の Bluetooth Proxy で SwitchBot Mater
2022-08-26
nao-pon
/
blog
/
独自ビルドの Tasmota を 12.1.1 へ
2022-08-19
nao-pon
/
blog
/
Zigbee + ZHA のメモ書き
2022-01-17
nao-pon
/
blog
/
HomeAssistant 統合の Tasmota-IRHVAC に貢献
2021-08-03
nao-pon
/
ファイル置き場
/
スペースサワダ
2021-07-01
nao-pon
/
blog
/
HomeAssistant 統合の Tasmota-IRHVAC の不具合修正
2021-06-20
nao-pon
/
blog
/
Tasmota を 9.4.0 から 9.5.0 へアップデート
2021-06-15
nao-pon
/
blog
/
ミンティア[MINTIA] で WiFi 6ボタンスイッチを作った
2021-04-27
PublicBlog
2021-03-17
nao-pon
/
blog
/
SwitchBot 温湿度計を ESP32 でモニタリング
2021-03-13
nao-pon
/
blog
/
東芝エアコンのエントリーモデルもWiFi化
2021-02-23
risoulaser
2021-02-18
nao-pon
/
blog
/
Panasonic (ナショナル) エアコンの 2008 年モデルも WiFi 化
2021-02-15
nao-pon
/
blog
/
Tasmota で HA 端子(JEM-A) 連携
2021-02-07
nao-pon
/
blog
/
Tasmota で三菱エアコンを完全コントロール
オンライン状況
412 人のユーザが現在オンラインです。 (10 人のユーザが UsersWiki を参照しています。)
登録ユーザ: 0
ゲスト: 412
もっと...
サイト情報