domaintools的官方python api

domaintools_api的Python项目详细描述


domaintools

PyPI versionBuild StatusCoverage StatusLicense

domaintools的官方python api

domaintools Example

域工具示例

安装Domaintools的API

要安装API,请运行

pip install domaintools_api --upgrade

理想情况下,在虚拟环境中。

使用API

开始创建api实例-传入您的凭据

fromdomaintoolsimportAPIapi=API(USER_NAME,KEY)

然后,每个api端点都作为api对象上的方法公开,其中 应传递到传入的终结点的任何参数 作为方法参数:

api.domain_search('google',exclude='photos')

您可以获得与之交互的每个端点的概述 使用内置帮助功能:

help(api)

如果适用,本机python循环可以直接用于循环 通过任何结果:

forresultinapi.domain_search('google',exclude='photos'):print(result['sld'])

您还可以使用上下文管理器来确保对结果的处理 仅当请求成功时发生:

withapi.domain_search('google',exclude='photos')asresults:print(results)

对于期望返回单个项的api调用,可以 直接与结果交互:

profile=api.domain_profile('google.com')title=profile['website_data']['title']

对于任何需要单一类型数据的api调用,您可以 直接转换为所需类型:

float(api.reputation('google.com'))==0.0int(api.reputation('google.com'))==0

从domaintools返回的整个结构可以通过执行 .data(),而可操作的响应信息可以是 通过执行.response()

检索
api.domain_search('google').data()=={'response':{...}}api.domain_search('google').response()=={...}

您可以通过 呼叫.(html|xml|json)()

html=str(api.domain_search('google').json())xml=str(api.domain_search('google').xml())html=str(api.domain_search('google').html())

如果任何API调用失败,则在 domaintools.exceptions将筹集:

api.domain_profile('notvalid').data()---------------------------------------------------------------------------BadRequestExceptionTraceback(mostrecentcalllast)<ipython-input-3-f9e22e2cf09d>in<module>()---->1api.domain_profile('google').data()/home/tcrosley/projects/external/python_api/venv/lib/python3.5/site-packages/domaintools-0.0.1-py3.5.egg/domaintools/base_results.pyindata(self)25self.api._request_session=Session()26results=self.api._request_session.get(self.url,params=self.kwargs)--->27self.status=results.status_code28ifself.kwargs.get('format','json')=='json':29self._data=results.json()/home/tcrosley/projects/external/python_api/venv/lib/python3.5/site-packages/domaintools-0.0.1-py3.5.egg/domaintools/base_results.pyinstatus(self,code)4445elifcode==400:--->46raiseBadRequestException()47elifcode==403:48raiseNotAuthorizedException()BadRequestException:

异常将包含状态代码和 例外情况:

try:api.domain_profile('notvalid').data()exceptExceptionase:asserte.code==400assert'We could not understand your request'ine.reason['error']['message']

您可以在异常处理之外获取响应的状态代码 通过执行.status

api.domain_profile('google.com').status==200

异步使用api

domaintools Async Example

域工具异步示例

如果您在Python3.5+上运行,则会自动运行domaintools的API 支持异步使用:

search_results=awaitapi.domain_search('google')

内置了对异步上下文管理器的支持:

asyncwithapi.domain_search('google')assearch_results:# do things

直接异步循环:

asyncforresultinapi.domain_search('google'):print(result)

所有异步操作都可以安全地与非异步操作混合使用- 如果先完成异步调用,则获得最佳性能:

profile=api.domain_profile('google.com')awaitprofiletitle=profile['website_data']['title']

通过命令行客户端与api交互

domaintools CLI Example

domaintools cli示例

在使用pip安装domaintools_api之后,立即 domaintools命令行客户端将对您可用:

domaintools --help

要使用-只需传入要与之一起进行的API调用 需要的参数和您的凭据:

domaintools domain_search google --max_length 10 -u $TEST_USER -k $TEST_KEY

也可以指定所需的格式(html、xml、json或 结果列表:

domaintools domain_search google --max_length 10 -u $TEST_USER -k $TEST_KEY -f html

为了避免重复输入api密钥,可以指定它们 在~/.dtapi中,用新行分隔:

API_USER
API_KEY

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java模拟存储库对象从controller testcase返回空结果?   Java扫描程序跳行异常   c#混淆If语句?   java为什么日志中的stacktrace前面没有这一行?   java如何使SSHJ在非标准端口上启动出站SFTP?   java我如何确定为什么每周收入没有在我的程序中显示前三次?   java如何判断堆叠条形图的轴的行为?   java rest json API的Web服务器体系结构   java ClassCastException:javax。摆动按扭   Java在Linux上不读取excel文件(使用Apache POI)   反馈错误后,java Wicket 1.4.9无法从modal使用AjaxRequestTarget!   java方法头中“静态”的含义是什么?   java无法在我的tomcat应用程序中添加外部库   java使用Itext Pdf将图像添加到Pdf文件   java为什么当我调用universe时java3d会闪烁。getCanvas()。getView()。重新油漆();   java Gson嵌套类在使用proguard时为空   java如何确定JSON路径对文档是否有效   java在使用Jsoup解析时保持HTML布尔属性的原始形式   使用Java SDK,如何在Azure存储文件服务中为文件设置元数据?