使用Python发现Web服务

问题描述:

我在网络上有几个设备。我试图用库来发现这些设备的存在和使用Python脚本的迭代性,这些设备都有一个Web服务。我的问题是,是否有任何模块可以帮助我解决这个问题,因为我发现的唯一模块是用于Python的ws-discovery?使用Python发现Web服务

如果这是唯一的模块有没有人有任何使用ws-discovery的Python脚本示例?

感谢您的任何帮助。

不幸的是我从来没有使用WS-发现自己,但似乎有一个实现它一个Python项目: http://code.google.com/p/python-ws-discovery/

从他们的文档,这里是如何使用它一个简单的例子:

wsd = WSDiscovery() 
wsd.start() 

ttype = QName("abc", "def") 

ttype1 = QName("namespace", "myTestService") 
scope1 = Scope("http://myscope") 
ttype2 = QName("namespace", "myOtherTestService_type1") 
scope2 = Scope("http://other_scope") 

xAddr = "localhost:8080/abc" 
wsd.publishService(types=[ttype], scopes=[scope2], xAddrs=[xAddr]) 

ret = wsd.searchServices() 

for service in ret: 
    print service.getEPR() + ":" + service.getXAddrs()[0] 

wsd.stop() 
+0

我已经使用过这段代码并且能够正常工作,它在我的服务器端。你可以使用'service.getXAddrs()[0]'获得第一个服务的xaddress等。感谢您的帮助 – chrissygormley 2010-03-30 14:48:45

你是否与ws-discovery绑定?如果没有,您可能需要考虑Bonjour协议,即ZeroConf和DNS-SD。该协议相对广泛的实施。我从来没有用Python来做广告或发现,但有一个项目实现了一个API:http://code.google.com/p/pybonjour/

正如我所说,我没有直接的经验与这个项目,只是指出它作为ws-发现。