Skip to main content

一个偷偷摸摸的 Tumblr API

项目描述

没有 OAuth 的 Tumblr

TL;DR:tumblr_noauth是一个 Python 包,它提供了一个 TumblrSession(email, password)扩展 requests.Session并提供 Tumblr 登录/注销过程的类。

Tumblr 提供了一个OAuth API,您可以将其用于相当简单的任务,主要用于类似仪表板的功能;有很多遗漏,例如

  • 检查 URL 是否可用于创建新博客;端点 www.tumblr.com/check_if_tumblelog_name_is_available需要身份验证
  • 可能是我忘记的其他人

由于没有官方访问该数据的方式,tumblr_noauth提供了一种解决方法:模拟整个 Tumblr “会话”;您向它提供用户名和密码( 即使在TumblrSessionobject中也不会存储),它会执行登录请求(以及带有或在 子句__exit__末尾的注销请求)。with

在底层, aTumblrSession是具有一些特殊行为的 a,它针对 Python 的statementsrequests.Session使用进行了优化。with

对象中的以下方法TumblrSession专门用于使 https://www.tumblr.com/前缀可选:

  • delete
  • get
  • head
  • options
  • patch
  • post
  • put

即高级HTTP请求。

示例用法:

import json
import tumblr_noauth

with open('creds.json') as f:
    creds = json.load(f)

with TumblrSession(creds['email'], creds['password']) as session:
    data = {'name': staff}
    resp = session.post('check_if_tumblelog_name_is_available',
    data=data)

    print(resp, ';', resp.text)

wherewith子句自动登录和退出 Tumblr。

对于额外的“真实性”,您可能希望将标题设置为...

# this is lying
headers = {
    'Host': 'www.tumblr.com',
    'Origin': 'https://www.tumblr.com',
    'Referer': 'https://www.tumblr.com/dashboard',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest',
}

项目详情


下载文件

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

内置分布

tumblr_noauth-0.1.0-py3-none-any.whl (4.1 kB 查看哈希

已上传 py3