�@�A�}�]�� (
http://www.amazon.co.jp/) ���ȑO����Web��ŗ��p�ł���T�[�r�X��W�J���Ă��܂��B�A�}�]����Web�T�[�r�X�𗘗p����Ύ����̃T�C�g�Ŏ����̍D���ȃ��C�A�E�g�̏��X�i�̔��X�j��W�J���邱�Ƃ��ł��܂��B�ʏ�́A���̂悤�ȍ�Ƃ͎��Ƃł������V�X�e���𐧍삵�܂��B���AAjax�𗘗p����Δ��ɊȒP�Ɏ��R�ɏ��i��z�u�����胊�A���^�C���ɔ���Ă��鏇�Ԃŕ\�������邱�Ƃ��ł��܂��B
�@�����Ŏg�����@��Google Maps�Ƃ͈قȂ�A�}�]���ɃN�G���[�𑗂��Ė߂��Ă���XML�f�[�^��JavaScript�ŏ�����������̂ł��B�u���E�U��URL�Ɏw�肳�ꂽ������͂���u���E�U���XML��\������܂��iFirefox�Ȃ�XML�f�[�^�𐮌`���ĕ\���ł���u���E�U�̕����ǂ��ł��傤�j�B
�@���̑O�ɁA�A�}�]����Web�T�[�r�X�𗘗p����ɂ�Google Maps�Ɠ������\�����݂��K�v�ł��B�A�J�E���g�������Ă��Ȃ��l�̓A�J�E���g���쐬���܂��傤�B�A�J�E���g�������Ă��邾���ł��ʖڂ�Web�T�[�r�X�́A�ʓr�\�����ޕK�v������܂��B�܂��AGoogle�����A�o�^���ɓ��͂�����͑�������܂��B
�@�܂��A�ȉ���URL�ɃA�N�Z�X���܂��B[1] �o�^ID (SubscriptionID) ���擾���܂��A�̃����N���N���b�N���܂��B
http://www.amazon.co.jp/exec/obidos/subst/associates/join/webservices.html/503-3082273-2271147
�@���łɓo�^���Ă���l�̓��[���A�h���X�ƃp�X���[�h����͂��܂��B���o�^�̏ꍇ�ɂ�No, I ama anew customer.�̃��W�I�{�^���Ƀ`�F�b�N������Continue�{�^�����N���b�N���܂��B
�@���O�ƃ��[���A�h���X�ƃp�X���[�h����͂��܂��B���͂�����Continue�{�^�����N���b�N���܂��B
�@�Z���Ȃǂ̌l������͂��܂��B
�@����������͂ł���Γo�^�͊����ł��B
���Ƃ́A�g�p����Key ID���m�F���܂��B�Ƃ肠������L��ʂ�Amazon E-Commerce Service�̃����N���N���b�N���܂��BAmazon E-Commerce Service�̉�ʂɂȂ�܂��B�E���Your Web Service Account�̃{�^��������܂��̂ŁA���̃{�^���̏�Ƀ}�E�X���d�˂܂��B����ƁA���j���[���\�������̂�View Access Key Identifiers���N���b�N���܂��B����ƈȉ��̂悤�ȉ�ʂ��\������܂��B
�@������Access Key ID�Ƃ������ڂ�����܂��B����ID���o�^���������̃A�N�Z�X�L�[�ɂȂ�܂��B�A�}�]����Web�T�[�r�X�𗘗p����ꍇ�ɂ́A����ID���w�肵�܂��B�����A�A�}�]���̃A�t�B���G�C�g�i�A�\�V�G�C�g�j�ɐ\������ł���ꍇ�ɂ́A���̃A�t�B���G�C�gID���w�肷�邱�Ƃ��ł��܂��B
�@�A�}�]����Web�T�[�r�X�𗘗p���邽�߂̃h�L�������g�͈ȉ���URL�ɂ���܂��B
http://www.amazon.com/gp/browse.html/104-2478592-0899925?%5Fencoding=UTF8&node=3487571&no=12738641&me=A36L942TSJ2AJA
�@����ŏ������ł��܂����B
�@�A�}�]����Ajax�ŗ��p����ꍇ�ɂ̓T�[�o�[����CGI���K�v�ɂȂ�܂��B�Ƃ����̂�Ajax�ł͓��삵�Ă���X�N���v�g���u����Ă��铯��T�[�o�[��ȊO�̏����擾�ł��Ȃ����߂ł��B�����ŁA�����ł�Ruby (1.8.4)���g���āA�u���E�U����v�����ꂽ���̂��A�}�]���̃T�[�o�[�ɓn���A���̌��ʂ��u���E�U�ɕԂ����̂�p�ӂ��܂��B�ȉ����T���v���ł����i�������ȕ����́A�����߂Ɍ��Ă���Ă��������j�A���̕�������قǎ擾�����A�N�Z�X�L�[�A���̕������A�t�B���G�C�g��ID�ɂȂ�܂��B�A�t�B���G�C�g�ɎQ�����Ă��Ȃ��ꍇ�ɂ�&AssociateTag=�̕����͕s�v�ł��B�܂��A�ŏ��̃T���v���ł�responseText�Ŏ�邽��MIME Type��text/html�ɂ��Ă��܂����A����ȊO�̃T���v���ł�XML�Ŏ�邽��MIME type��text/xml�ɂ��Ă����K�v������܂��B
#!/usr/local/bin/ruby
require "cgi-lib"
input = CGI.new
inputdata = input["query"]
print "Content-type: text/html\n\n"
fh = open("| curl 'http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=��&AssociateTag=��&Operation=ItemSearch&Sort=daterank&SearchIndex=Books&BrowseNode="+inputdata+"&ResponseGroup=Medium'")
while !fh.eof
print fh.gets
end
fh.close
�@����ł́A�ł��ȒP�ȂƂ��납��n�߂܂��傤�B�ȉ��̃T���v���̓R���s���[�^�[�E�C���^�[�l�b�g�W�̏��Ђ̏���\��������̂ł��B�i�T���v����
���s�����j
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>�A�}�]������ (responseText)</title>
<link rel="stylesheet" href="main.css" type="text/css" media="all">
<script type="text/javascript" src="xmlhttp.js"></script>
<script type="text/javascript"><!--
function amazonSearch()
{
httpObj = createXMLHttpRequest(displayData);
if (httpObj)
{
httpObj.open("GET","amazon.rb?query=466298&cache="+(new Date()).getTime(),true);
httpObj.send(null);
}
}
function displayData()
{
if ((httpObj.readyState == 4) && (httpObj.status == 200))
{
$("result").innerText = httpObj.responseText;
$("result").textContent = httpObj.responseText;
}
}
// --></script>
</head>
<body>
<h1>�A�}�]������ (responseText)</h1>
<form method="get" name="ajaxForm" onsubmit="amazonSearch();return false;">
<input type="button" value="�R���s���[�^�E�C���^�[�l�b�g�̃J�e�S���̏��Ђ�����" onClick="amazonSearch()">
</form>
<div id="result"></div>
</body>
</html>
�@�T���v�������s�����XML�f�[�^���A��������ƕ\������܂��B���̃f�[�^��Firefox�ȂǂŌ���ƁA�ǂ̂悤�ȍ\���ɂȂ��Ă��邩�m�鎖���ł��܂��i����XML�̍\���̓T�[�o�[�ɗv������ResponseGroup�̒l�ɂ���ĕς��܂��j�B�i
�A�}�]����XML�̃T���v����\������j
�@�ȒP�ȂƂ���ŁA�w�肵���J�e�S���i�����ł̓R���s���[�^�E�C���^�[�l�b�g�j�̑��������擾���Ă݂܂��BXML�������
<TotalResults>66190</TotalResults>
�@�Ƃ���܂��B���ꂪ�������ɂȂ�܂��B����TotalResults�̍ŏ��̃e�L�X�g�m�[�h�̒l��\������ł�������ł��i���܂łɂ�XML�̃f�[�^��\�����Ă��܂����̂ŁA�����͏ȗ����܂��j�B�i���ۂ̃T���v����
���s�����j
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>�A�}�]������ (����W�������̑������\��)</title>
<link rel="stylesheet" href="main.css" type="text/css" media="all">
<script type="text/javascript" src="xmlhttp.js"></script>
<script type="text/javascript"><!--
function amazonSearch()
{
httpObj = createXMLHttpRequest(displayData);
if (httpObj)
{
httpObj.open("GET","amazon.rb?query=466298&cache="+(new Date()).getTime(),true);
httpObj.send(null);
}
}
function displayData()
{
if ((httpObj.readyState == 4) && (httpObj.status == 200))
{
xmlData = httpObj.responseXML;
total = xmlData.getElementsByTagName("TotalResults")[0].childNodes[0].nodeValue;
$("result").innerHTML = "���̃J�e�S���ɂ�<b>" + total + "</b>���̖{������܂��B";
}
}
// --></script>
</head>
<body>
<h1>�A�}�]������ (����W�������̑������\��)</h1>
<form method="get" name="ajaxForm" onsubmit="amazonSearch();return false;">
<input type="button" value="�R���s���[�^�E�C���^�[�l�b�g�̃J�e�S���̏��Б������\��" onClick="amazonSearch()">
</form>
<div id="result"></div>
</body>
</html>
�@CGI�ɗ^����J�e�S���R�[�h��ς��邾���ŁA���낢��ȃJ�e�S���̑�������\�������邱�Ƃ��ł��܂��B�i�T���v����
���s�����j
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>�A�}�]������ (�w�肳�ꂽ�W�������̑������\��)</title>
<link rel="stylesheet" href="main.css" type="text/css" media="all">
<script type="text/javascript" src="xmlhttp.js"></script>
<script type="text/javascript"><!--
function amazonSearch(srchType)
{
if (srchType == 0) return;
httpObj = createXMLHttpRequest(displayData);
if (httpObj)
{
httpObj.open("GET","amazon.rb?query="+srchType+"&cache="+(new Date()).getTime(),true);
httpObj.send(null);
}
}
function displayData()
{
if ((httpObj.readyState == 4) && (httpObj.status == 200))
{
xmlData = httpObj.responseXML;
total = xmlData.getElementsByTagName("TotalResults")[0].childNodes[0].nodeValue;
$("result").innerHTML = "���̃J�e�S���ɂ�<b>" + total + "</b>���̖{������܂��B";
}
}
// --></script>
</head>
<body>
<h1>�A�}�]������ (�w�肳�ꂽ�W�������̑������\��)</h1>
<form method="get" name="ajaxForm" onsubmit="return false;">
<select onChange="amazonSearch(this.value)">
<option value="0">�J�e�S����I������������</option>
<option value="466282">�r�W�l�X�E�o�ρE�L�����A</option>
<option value="466298">�R���s���[�^�[�E�C���^�[�l�b�g</option>
<option value="492054">�����E���Z�E��Ќo�c</option>
<option value="466284">���w�E�]�_</option>
<option value="571582">�l���E�v�z</option>
<option value="571584">�Љ�E����</option>
</select>
</form>
<div id="result"></div>
</body>
</html>
�@�J�e�S���[�̃R�[�h�Ɋւ��Ă͊J���p�̃h�L�������g (2005-10-05)��432�y�[�W�ȍ~�Ɍf�ڂ���Ă��܂��B�A�}�]���͊e���ŃT�[�r�X���قȂ邽�߁A���{�p�̃��N�G�X�g�R�[�h�Ȃǂ��w�肵�Ȃ��Ƃ����܂���B�܂�č��̃A�}�]���Ɠ��{�̃A�}�]���ł�URL�Ŏw�肷��L�[���قȂ�܂��̂Œ��ӂ��K�v�ł��B
�@�J�e�S���[�R�[�h�̓A�}�]����Web�T�C�g�ŕ\�������URL������m�鎖���ł��܂��B�A�}�]���̃T�C�g�ŃJ�e�S����I�����Ă����܂��B�Ⴆ�Έȉ���URL�̏ꍇ�ɂ͐Ԏ��̐��l�������J�e�S���[�R�[�h�ɂȂ�܂��B
http://www.amazon.co.jp/exec/obidos/tg/browse/-/
466280/ref=amb_b_nav_466280/503-3082273-2271147
�@���̃R�[�h���w�肷��D���ȃJ�e�S���[�̏����擾���邱�Ƃ��ł��܂��B
�{�̑�������\�������邾���ł́A�Ӗ�������܂���̂Ŏ����ł́AXML�f�[�^����͂����Јꗗ��\�������Ă݂܂��B
[
�攪�́@2:���Јꗗ��\��������]
[
�ڎ���]
(2006.1.24)