首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

继续开贴寻找真正高手!找了一天也没找到答案!希望坛子不是小弟我那个烂单位,有什么有关问题都找不一个人能问

2013-02-24 
继续开贴寻找真正高手!找了一天也没找到答案!希望坛子不是我那个烂单位,有什么问题都找不一个人能问!做为

继续开贴寻找真正高手!找了一天也没找到答案!希望坛子不是我那个烂单位,有什么问题都找不一个人能问!
做为技术流,解决不了问题,睡不好觉都!
http://storelocator.officedepot.com/index.html?form=getlist_search&clientkey=101
这个网页里的
Store # 101
LAFAYETTE, LA 70503
怎么无法看到,也提取不来!经过一天搜索发现这个问题是Ajax异步数据传输抓取!也是个难题啦!继续开贴寻找高手!

xml_request<request><appkey>AC2AD3C2-C08F-11E1-8600-DCAD4D48D7F4</appkey><geoip>1</geoip><formdata id="getlist"><objectname>Locator::Store</objectname><where><clientkey><eq>101</eq></clientkey></where></formdata></request>

修改红色部分的xml节点的参数值就可以获取到不同的内容了。返回的内容是XML格式的,解析下xml得到需要的内容就行了

<?xml version="1.0" encoding="UTF-8"?><response code="1"><collection name="poi" count="1" geocoder="GoogleMaps" code="620"><poi>
  <name>OFFICEDEPOT</name>
  <address1>2627 OKEECHOBEE BLVD</address1>
  <address2>WESTWARD SHOPPING CENTER</address2>
  <adtileimage>http://www.officedepot.com/images/us/od/tiles/052310_180x132_cpd.gif</adtileimage>
  <adtileurl>http://www.officedepot.com/a/design-print-and-ship/?cm_re=StoreLoc-_-MINI-_-CPDMINI</adtileurl>
  <city>WEST PALM BEACH</city>
  <clientkey>102</clientkey>
  <country>US</country>
  <dist>179</dist>
  <expanded_furn>y</expanded_furn>
  <fax>(561) 640-4359</fax>
  <fname>EDDIE</fname>
  <fri>08:00-09:00</fri>
  <icon>default</icon>
  <ink_refill></ink_refill>
  <latitude>26.70718</latitude>
  <lname>ANDERSON</lname>
  <longitude>-80.09327</longitude>
  <mon>08:00-09:00</mon>
  <newstore></newstore>
  <notaryservice></notaryservice>
  <nowdocs>x</nowdocs>
  <phone>(561) 687-2600</phone>
  <photoprint></photoprint>
  <postalcode>33409</postalcode>
  <promo></promo>
  <province></province>
  <reg>25</reg>
  <sat>09:00-09:00</sat>
  <selfservews></selfservews>
  <shredding>y</shredding>
  <state>FL</state>
  <sun>10:00-06:00</sun>
  <thur>08:00-09:00</thur>
  <tues>08:00-09:00</tues>
  <uid>930883151</uid>
  <usps>y</usps>


  <wed>08:00-09:00</wed>
</poi>
</collection></response>


[解决办法]
这个网站用了一个web gis的库叫Where2GetIt,它用XML格式来查询地理信息。像这样:

<request>
<appkey></appkey>
<inputform>
<formdata id=”keyword”>
the specific input xml goes here
</formdata>
</inputform>
</request>
A fully encoded URL would

其中formdata标签就是用来传递查询参数的.
正如showbo版主所说formdata 标签里的eq标签就是商店的编号返回相应的商店信息,改它就查询不同商店。
Where2GetIt api是这么说的:
<Eq> – Equals – the input field must exactly match the database value

你直接在自己的程序里调用下面请求就再解析返回的xml能得到你要的商店信息

http://storelocator.officedepot.com/ajax?&xml_request=<request><appkey>AC2AD3C2-C08F-11E1-8600-DCAD4D48D7F4</appkey><geoip>1</geoip><formdata id="getlist"><objectname>Locator::Store</objectname><where><clientkey><eq>101</eq></clientkey></where></formdata></request>


放了本它的api到csdn资源,具体你可下来参考一下这里

热点排行