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无法启动应用程序:JNLP错误   java根据用户输入在PreparedStatement中使用setTime()或setNull()   java EJB与同步   java以object为键通过hashmap进行搜索   java中的模10^9+7   针对包含其他对象的对象的java OOP最佳实践   如何将字符串作为HTML代码从Java文件读取到JSP页面?   java我的POM怎么了?“解析表达式..检测到递归表达式循环”   用于Hbase的Mapreduce的java NoSuchMethodError   JAVAlang.SecurityException:权限拒绝:启动意图{act=安卓.Intent.action.MAIN cat=[安卓.Intent.category.LAUNCHER]   数组初始化谜语Java   通过arraylist搜索时的java句柄关联