C++通过gSOAP使用Bing API进行搜索

简介:

Pnig0s1992:因为做一个关键词情感倾向的算法需要将关键字通过搜索引擎查询并取得结果集总数,前期框架是用C++写的,没辙只能接着用C++去调用Bing API的WebService了。Google了下,发现在C/C++下调用搜索引擎API的文章几乎没有,也许是杀鸡用牛刀了吧,经过一些时间的技术调查,最终通过gSOAP解决了这个问题。

    gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户必须改变程序结构来适应相关的类库。与之相反,gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来。gSOAP还是非常强大的,下面来说下具体操作。首先需要在http://www.bing.com/developers/createapp.aspx这里申请一个APPID才能使用Bing的一系列API。申请完之后构造如下连接YOURAPPIDhttp://api.search.live.net/search.wsdl?AppID= ,接下来祭出gSOAP,我使用的是最新的2.8.8版。下载之后解压,gsoap\bin\win32目录下有两个可执行文件wsdl2h.exe和soapcpp2.exe。把gsoap\WS目录下的typemap.dat复制到gsoap\bin\win32目录下,在命令行下执行:wsdl2h.exe -o BingAPI.h 。成功后win32目录下会生成一个BingAPI.h文件。然后在命令行执行:soapcpp2.exe -C BingAPI.h 。其中-C表示只生成客户端代码,执行成功后会在win32目录下生成若干文件,包括.h,.cpp,.nsmap,.xml等。

   

把刚刚生成的BingAPI.h,soapH.h,soapC.cpp,soapClient.Cpp,soapStub.h,BingPortBinding.nsmap,以及gsoap目录下的stdsoap2.h,stdsoap2.cpp以及gsoap\import下的stlvector.h复制到工程目录下,并添加进工程。然后加入winsock32.lib。

这里需要注意的是,因为我是使用C&WindowsAPI开发的 所以已经包含了WIndows.h。这里引入winsock32.lib会造成重定义错误。解决办法就是在#include <windows.h>前面加入#define    WIN32_LEAN_AND_MEAN如果你使用的是纯C库函数就没这个问题了。所有类的具体实现在soapStub.h里,下面直接给出调用Bing API的实例代码,头文件还需要

#include "soapH.h"
#include "BingPortBinding.nsmap"

 


 
 
  1. soap clientSOAP;  
  2. _ns1__SearchRequest BingRequest;  
  3. _ns1__SearchResponse BingResponse;  
  4. ns1__SearchRequest BingSearchRequest;  
  5. ns1__SearchResponse BingSearchResponse;  
  6. soap_init(&clientSOAP);  
  7. BingSearchRequest.AppId = "91DXXXXXXXXXXXXXB658A146E9DC007C2BA1";  
  8. BingSearchRequest.Query = "优秀";  
  9. BingSearchRequest.Market = new std::string("zh-cn");  
  10. BingSearchRequest.Sources = new class ns1__ArrayOfSourceType();  
  11. BingSearchRequest.Sources->SourceType.push_back(ns1__SourceType::ns1__SourceType__Web);  
  12. BingRequest.parameters  = &BingSearchRequest;  
  13. BingResponse.parameters = &BingSearchResponse;  
  14.  
  15. if(soap_call___ns1__Search(&clientSOAP,NULL,NULL,&BingRequest,&BingResponse) == SOAP_OK)  
  16. {  
  17.     cout<<BingResponse.parameters->Version<<endl;  
  18.     cout<<*BingResponse.parameters->Web->Total<<endl;  
  19. }else 
  20. {  
  21.     printf("\n使用Bing查询出错!");  
  22. }  
  23. soap_destroy(&clientSOAP);  
  24. soap_end(   &clientSOAP);  
  25. soap_done(&clientSOAP);  
  26. return

 Over~Thx for reading&Any comment is welcomed!















本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/791057,如需转载请自行联系原作者

相关文章
|
4月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
5月前
|
机器学习/深度学习 JSON 监控
淘宝拍立淘按图搜索与商品详情API的JSON数据返回详解
通过调用taobao.item.get接口,获取商品标题、价格、销量、SKU、图片、属性、促销信息等全量数据。
|
6月前
|
缓存 API 网络架构
淘宝item_search_similar - 搜索相似的商品API接口,用python返回数据
淘宝联盟开放平台中,可通过“物料优选接口”(taobao.tbk.dg.optimus.material)实现“搜索相似商品”功能。该接口支持根据商品 ID 获取相似推荐商品,并返回商品信息、价格、优惠等数据,适用于商品推荐、比价等场景。本文提供基于 Python 的实现示例,包含接口调用、数据解析及结果展示。使用时需配置淘宝联盟的 appkey、appsecret 和 adzone_id,并注意接口调用频率限制和使用规范。
|
4月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
217 11
|
10月前
|
API 开发者 Python
如何在API中实现搜索和过滤功能
本文介绍了如何为API添加搜索和过滤功能,使其更强大灵活。通过Flask示例,展示了按书名搜索、按作者或年份过滤书籍的方法,并结合两者实现复合查询。同时,提供了搜索不区分大小写、支持多过滤器组合、分页和输入验证等最佳实践。最后推荐了Apipost工具,它能简化API调试、负载测试及文档生成,提升开发效率。这些功能帮助用户更好地控制数据,优化API使用体验。
|
4月前
|
人工智能 自然语言处理 测试技术
Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口,API 搜索的下一代形态!
在大型项目中,API 数量庞大、命名不一,导致“找接口”耗时费力。传统工具依赖关键词搜索,难以应对语义模糊或命名不规范的场景。Apipost AI 智能搜索功能,支持自然语言查询,如“和用户登录有关的接口”,系统可理解语义并精准匹配目标接口。无论是新人上手、模糊查找还是批量定位,都能大幅提升检索效率,降低协作成本。从关键词到语义理解,智能搜索让开发者少花时间找接口,多专注核心开发,真正实现高效协作。
|
4月前
|
存储 API 数据库
按图搜索1688商品的API接口
本文介绍如何利用阿里云ImageSearch服务实现1688商品的按图搜索功能。通过提取图像特征向量并计算相似度,结合Flask搭建API接口,可快速构建基于图片的商品检索系统,提升电商用户体验。
474 0
|
4月前
|
JSON API 开发者
1688按关键词搜索商品的API接口技术指南
本文介绍如何使用1688开放平台API实现商品关键词搜索,涵盖API概述、权限申请、调用步骤、Python代码示例及注意事项,助力开发者高效集成商品搜索功能,适用于电商自动化、价格监控等场景,内容基于官方文档,确保准确可靠。
475 0
|
4月前
|
存储 缓存 算法
亚马逊 SP-API 深度开发:关键字搜索接口的购物意图挖掘与合规竞品分析
本文深度解析亚马逊SP-API关键字搜索接口的合规调用与商业应用,涵盖意图识别、竞品分析、性能优化全链路。通过COSMO算法解析用户购物意图,结合合规技术方案提升关键词转化率,助力卖家实现数据驱动决策,安全高效优化运营。
|
5月前
|
JSON 自然语言处理 监控
淘宝关键词搜索与商品详情API接口(JSON数据返回)
通过商品ID(num_iid)获取商品全量信息,包括SKU规格、库存、促销活动、卖家信息、详情页HTML等。