GithubHelp home page GithubHelp logo

seanhuai / tumblr-source-list Goto Github PK

View Code? Open in Web Editor NEW
61.0 7.0 20.0 15 KB

一个Tumblr资源工具,用于获取图片或视频信息

Home Page: https://seanhuai.github.io/2017/08/tumblr-source-list

License: MIT License

Python 100.00%

tumblr-source-list's Introduction

tumblr-source-list

一个简单的Tumblr资源工具,用于获取指定用户的图片或视频信息

当前版本: 0.170814.2 fixed

工具下载

克隆本仓库到本地 命令如下

git clone https://github.com/seanhuai/tumblr-source-list

使用方法

运行 app.py 文件,同时传递参数

用户模式

tumblr-source-list> python .\app.py username username mediatype limit

app.py username 后接 用户名(即用户二级域名)、媒体类型(photo 或 video)和 获取内容页数

内容页数:limit 指后台获取的内容页数,1 页约为 20 篇指定类型贴。由于汤不热允许博主设置每页显示数目,所以和实际显示的前台页数不同。

示例:

tumblr-source-list> python .\app.py username u44002 photo 3 

本例获取 u44002 用户近 3 页的图片内容

tumblr-source-list> python .\app.py username u44002 video 5 

本例获取 u44002 用户近 5 页的视频内容

生成的列表文件位于用户同名文件夹,请使用下载工具完成下载

链接模式

tumblr-source-list> python .\app.py posturl url

app.py posturl 后接 内容所在网页地址。

示例:

tumblr-source-list> python .\app.py posturl https://wsyghf.tumblr.com/post/150478441406/

本例获取 wsyghf 用户指定的图片内容

tumblr-source-list> python .\app.py posturl https://donshofer.tumblr.com/post/163730046536/

本例获取 donshofer 用户指定的图片内容

两例均为图片,视频为同样使用方法。

生成的列表文件位于用户同名文件夹,请使用下载工具完成下载。

代理设置

在**大陆使用,需设置网络代理。

默认设置代理为监听本地 1080 端口,适用 Shadowsocks 用户。

更改代理设置,修改 packages/_profiles.py host/port 变量值即可。

获取限制

官方限制,每一认证密钥每小时访问次数仅限 1000 次,同一密钥同一天限制访问 5000 次。

更换密钥,或设置备用密钥,修改 packages/_profiles.py api 变量值(组)即可。

常见问题

  1. 返回 401 错误:apikey 不正确,或输入的网址格式错误
  2. 返回 429 错误:超出 api 获取限制,请自行注册 apikey,详情访问 api.tumblr.com
  3. 获取内容页数不符:获取内容页数指后台获取的内容页数,1 页约为 20 篇指定类型贴
  4. 显示中文乱码:字符编码不兼容,修改终端字符编码

更新计划

近期将发布工作在 Windows 平台的 exe 程序。

下一版本计划:实现根据关键字搜索并获取内容,实现多 key 负载均衡。

tumblr-source-list's People

Contributors

seanhuai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

tumblr-source-list's Issues

分页貌似不能正常翻页

api 中offset 参数并不是多少也 这个值是从那个位置其后20条记录

我根据您的代码我修改了下 获取这个博客的所有posts 内的vedio 或者phtoto

from urllib import request
import json


proxy_handler = request.ProxyHandler({'http': 'http://127.0.0.1:1080/'})
opener = request.build_opener(proxy_handler)

url = 'http://api.tumblr.com/v2/blog/{username}.tumblr.com/posts/{mediatype}?api_key=fuiKNFp9vQFvjLNvx4sUwti4Yb5yGutBN4Xh10LXZhhRKjWlV4&offset={offset}'

infourl = 'http://api.tumblr.com/v2/blog/{username}.tumblr.com/info?api_key=fuiKNFp9vQFvjLNvx4sUwti4Yb5yGutBN4Xh10LXZhhRKjWlV4'
username = 'wsyghf'
mediatype='video'

f = opener.open(infourl.format(username=username))
j_f = json.loads(f.read())
print(j_f)
total_posts = j_f['response']['blog']['total_posts']
urls = []
for i in range(int(total_posts/20)+1):
	urls.append(url.format(username=username, mediatype=mediatype, offset=i*20))

def get_v(url):
	f = opener.open(url)
	d1 = json.load(f)
	v = []
	for i in d1['response']['posts']:
		if mediatype == 'video':
			v.append(i['video_url'])
		else:
			for i1 in i['photos']:
				v.append(i1['original_size']['url'])
	return v

c = {}

for u in urls:
	for cc in get_v(u):
		c[cc] = ''
print(c)
with open('all{username}_{mediatype}.txt'.format(mediatype=mediatype, username=username), 'w') as f:
	for u1 in c.keys():
		f.write(u1+'\n')

您好,我是使用这个脚本的时候出现了一个问题

PS E:\code\git\tumblr-source-list> python .\app.py posturl https://wsyghf.tumblr.com/post/150478441406/
Traceback (most recent call last):
File ".\app.py", line 5, in
from packages._funcs import *
File "E:\code\git\tumblr-source-list\packages_funcs.py", line 3, in
from packages._proxy import *
File "E:\code\git\tumblr-source-list\packages_proxy.py", line 3, in
from urllib import request
ImportError: cannot import name request

这是我的命令行信息,请问是什么问题导致的?这个脚本使用的python版本是多少呢~
谢谢~

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.