跳转到主要内容

Embedly的Python库

项目描述

这是未维护的embedly-python库的一个分支。它的目标是保持该包在新的Python版本上可安装和功能正常。

原始README如下

用于与Embedly API交互的Python库。要开始,请前往embed.ly/signup注册密钥。

安装

使用Pip安装

pip install embedly2

此库支持Python 3.6至3.10。

入门

此库旨在提供一个与Embedly API交互的简单方法。它只有两个主要对象,即Embedly客户端和Url响应模型。下面是一个简单示例,然后我们将详细介绍这些对象

>>> from embedly import Embedly
>>> client = Embedly(:key)
>>> obj = client.oembed('http://instagram.com/p/BL7ti/')
>>> obj['type']
u'photo'
>>> obj['url']
u'http://images.ak.instagram.com/media/2011/01/24/cdd759a319184cb79793506607ff5746_7.jpg'

>>> obj = client.oembed('http://instagram.com/error/error/')
>>> obj['error']
True

Embedly客户端

Embedly客户端是一个对象,它接受一个密钥和可选的用户代理和超时参数,然后处理与Embedly的所有交互和HTTP请求。要初始化对象,您需要您在注册Embedly时获得的密钥。

>>> from embedly import Embedly
>>> client = Embedly('key')
>>> client2 = Embedly('key', 'Mozilla/5.0 (compatible; example-org;)')
>>> client3 = Embedly('key', 'Mozilla/5.0 (compatible; example-org;)', 30)
>>> client4 = Embedly('key', timeout=10, user_agent='Mozilla/5.0 (compatible; example-org;)')

客户端对象现在有一系列不同的方法可供使用。

oembed

对应于oEmbed端点。返回一个对象,允许您检索标题、缩略图、描述和嵌入HTML

>>> client.oembed('http://vimeo.com/18150336')
<embedly.models.Url at 0x10223d950>
extract

对应于提取端点。返回一个对象,允许您获取标题、描述、内容、HTML以及图片列表。

>>> client.extract('http://vimeo.com/18150336')
<embedly.models.Url at 0x10223d950>
预览

预览功能不再对新用户开放,已被提取功能取代。

对应于预览端点。返回一个简单的对象,允许您获取标题、描述、内容、HTML以及图片列表。

>>> client.preview('http://vimeo.com/18150336')
<embedly.models.Url at 0x10223d950>
对象化

对象化功能不再对新用户开放,已被提取功能取代。

对应于对象化端点。返回一个简单的对象,允许您获取Embedly关于URL的几乎所有信息。

>>> client.objectify('http://vimeo.com/18150336')
<embedly.models.Url at 0x10223d950>

上述所有函数都接受相同的参数,即URL或URL列表以及与Embedly的查询参数相对应的关键字参数。以下是一个示例

>>> client.oembed(['http://vimeo.com/18150336',
  'http://www.youtube.com/watch?v=hD7ydlyhvKs'], maxwidth=500, words=20)

有一些辅助函数允许您在将URL发送到Embedly之前对其进行限制。Embedly可以为任何URL返回元数据,这些函数只是允许开发者仅传递Embedly的提供者的子集。请注意,bit.ly或t.co等URL缩写不支持通过这些正则表达式。

正则表达式

如果您想仅发送通过Embedly返回嵌入HTML的URL,您可以在调用之前将URL与正则表达式进行匹配。匹配的提供者列在embed.ly/providers

>>> url = 'http://vimeo.com/18150336'
>>> client.regex.match(url)
<_sre.SRE_Match at 0x1017ba718>

is_supported

这是正则表达式的一个简化版本

>>> url = 'http://vimeo.com/18150336'
>>> client.is_supported(url)
True

URL对象

Url对象基本上是Embedly API端点返回的响应字典。

>>> response = client.oembed('http://vimeo.com/18150336', words=10)

根据您使用的方法,响应将具有不同的属性。我们将介绍几个,但您应该阅读文档以获取返回数据的完整列表。

>>> response['type']
u'video'
>>> response['title']
u'Wingsuit Basejumping - The Need 4 Speed: The Art of Flight'
>>> response['provider_name']
u'Vimeo'
>>> response['width']
1280

如您所见,Url对象像字典一样工作,但略有增强。它总是具有methodoriginal_url属性,分别代表Embedly请求类型和请求的URL。

>>> response.method
'oembed'
>>> response.original_url
'http://vimeo.com/18150336'

# useful because the response data itself may not have a URL
# (or it could have a redirected link, querystring params, etc)
>>> response['url']
...
KeyError: 'url'

对于预览和对象化端点,也可以以相同的方式访问子对象。

>>> obj = client.preview('http://vimeo.com/18150336', words=10)
>>> obj['object']['type']
u'video'
>>> obj['images'][0]['url']
u'http://b.vimeocdn.com/ts/117/311/117311910_1280.jpg'

错误处理

如果请求处理过程中出现错误,Url对象将包含一个错误。例如,如果我们使用一个无效的密钥,我们将收到一个401响应

>>> client = Embedly('notakey')
>>> obj = client.preview('http://vimeo.com/18150336')
>>> obj['error']
True
>>> obj['error_code']
401

变更日志

版本0.6.0(2022年5月25日)

  • 声明支持Python 3.6至3.10;停止支持Python 2、3.2和3.3。

  • 修复与setuptools最新版本兼容的安装问题。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪一个,请了解有关安装包的更多信息。

源代码分发

embedly2-0.6.0.tar.gz (10.9 kB 查看哈希值)

源代码

构建分发

embedly2-0.6.0-py3-none-any.whl (9.2 kB 查看哈希值)

上传时间 Python 3

支持