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无法从spring resttemplate访问sms网关   使用spark上下文方法参数的java并行化集合不正确   java中ReadLock的并发检查副本   java基于属性比较两个列表是否具有相同的元素   字符串Java文本块:缩进前缀中的制表符和空格的混合   java如何将带有@SpringBootApplication的maven模块作为测试范围中的依赖项添加到另一个maven模块   我需要一些关于在Java中使用2个jar文件的帮助   mysql JPA Java Spring Boot执行查找/连接表   java对话框选择具有特定名称的文件   java如何修复Spring工具套件4中的端口8080错误?   Java中的apache poi Excel阅读器   java如何在tomcat访问日志中记录线程上下文值   java有一种方法可以创建类<T>的实例,该类将类作为传递泛型的构造函数中的参数   默认情况下,java GORM onetomany映射执行即时抓取   java不能在安卓中接受全局变量   统计系统的java MongoDB异步驱动程序排名   java如何解析:无法解析插件“org.springframework.ide.eclipse.ui”?   用Java从一副牌中随机抽取5张牌   javaapachecamel动态消费者   java如何克服使用Flood Fill 4算法时的“薄边界”问题?