Có cách nào để xem tất cả các bài viết Tumblr của tôi không phải là reblog không?


11

Tôi có hơn 7000 bài đăng trong tài khoản Tumblr của mình. Phần lớn trong số chúng là "reblog" nhưng phần còn lại là các bài đăng (hình ảnh hoặc văn bản) mà tôi đã tải lên. Có cách nào để xem những bài viết cụ thể này không? Một cách sẽ là nếu tôi đã sử dụng một thẻ nhất định cho các bài đăng này nhưng tôi không có. Để viết lại câu hỏi của tôi: Có cách nào để xem tất cả các bài đăng Tumblr có sẵn mà nguồn là tài khoản của tôi không?

Câu trả lời:


4

Tôi là tác giả của tập lệnh được liên kết trong câu trả lời của @ oneqeightyfour. Vì vậy, mặc dù tôi đến bữa tiệc muộn một chút, đây là phiên bản sửa đổi của tập lệnh mà bạn có thể sử dụng.

Tôi đã tìm thấy một trang web một cú nhấp chuột cũng yêu cầu làm điều này, nhưng tôi không thể làm cho nó hoạt động. Bạn có thể muốn thử điều đó đầu tiên?


Bước 1: nhận khóa API Tumblr

Sử dụng API đơn giản hơn nhiều, từ góc độ lập trình, hơn là cố gắng cạo trang web. Ngoài ra, Tumblr T & Cs cau mày khi bạn truy cập dữ liệu hàng loạt mà không thông qua API.

Để lấy khóa API của bạn:

  1. Đảm bảo bạn đã đăng nhập vào Tumblr
  2. Tới trang đăng ký OAuth của họ .
  3. Chọn ứng dụng Đăng ký Đăng ký, và sử dụng các chi tiết sau:

    • Tên ứng dụng: Tìm tất cả các bài viết gốc của tôi
    • Mô tả ứng dụng: Tìm tất cả các bài viết gốc trên một trang web; đó là, bài viết không phải là weblog
    • URL gọi lại mặc định: /
  4. Điều này sẽ đưa bạn trở lại trang đầu tiên. Bạn sẽ được hiển thị Khóa tiêu dùng OAuth . Sao chép này - chúng tôi sẽ sớm sử dụng nó.

Bước 2: Thiết lập tập lệnh

Đây là phiên bản sửa đổi nhẹ của kịch bản của tôi. Sao chép và dán phần này vào trình soạn thảo văn bản (ví dụ TextEdit hoặc Notepad) và lưu nó dưới dạng originals.py.

Bạn nên thay thế HOSTNAMEbiến bằng URL của blog của bạn và API_KEYbiến đó bằng Khóa tiêu dùng OAuth bạn đã truy xuất ở bước 1.

#!/usr/bin/env python

import json
try:
    from urllib.request import urlopen
except ImportError:
    from urllib2 import urlopen

HOSTNAME = "alexwlchan.tumblr.com"
API_KEY = "abcdefg"

BASE_URL = (
    "http://api.tumblr.com/v2/blog/{hostname}/"
    "posts?api_key={key}&reblog_info=true"
) .format(hostname=HOSTNAME,key=API_KEY)


def api_response(url):
    req = urlopen(url)
    return json.loads(req.read())


jsonresponse = api_response(BASE_URL)
post_count = jsonresponse["response"]["total_posts"]

for count in range(0, post_count, 20):
    jsonresponse = api_response("{url}&offset={count}".format(
        url=BASE_URL,
        count=count))

    for post in jsonresponse["response"]["posts"]:
        if "reblogged_from_name" not in post:
            print(post["post_url"])

print("All finished!")

Bước 3: Chạy kịch bản

Đây là tập lệnh Python, phù hợp với Python 2 hoặc 3. Nếu bạn ở Google, bạn sẽ có thể tìm thấy hướng dẫn chạy tập lệnh Python cho hệ điều hành bạn chọn.

Tập lệnh sẽ in ra một danh sách các URL mà ở đó nó không nhận được bất kỳ thông tin reblog nào từ API Tumblr. Trong thử nghiệm (rất ngắn gọn) của tôi, nó dường như nhận được một số URL thực sự bị từ chối - Tôi chưa thực hiện bất kỳ hoạt động đào nào để tìm hiểu lý do tại sao lại như vậy.

Chúc vui vẻ! :-)


Cảm ơn bạn rất nhiều, mặc dù đó là một câu trả lời muộn :)
Aventinus

3

Ai đó trên internet đã viết một kịch bản cho điều này và bạn có thể tìm thấy nó trên Github . Bạn sẽ phải thay đổi các tham số của tên máy chủ và khóa API thành tên máy chủ tumblr của riêng bạn và thêm khóa API của riêng bạn.

Tên máy chủ của bạn sẽ là một cái gì đó như "x.tumblr.com", (hãy chắc chắn bọc nó bằng dấu "").

Sau đó, bạn sẽ cần lấy khóa API từ Tumblr. Để làm điều này:

  1. Đảm bảo rằng bạn đã đăng nhập vào Tumblr.
  2. Truy cập trang đăng ký OAuth .
  3. Nhấp vào Đăng ký ứng dụng với các chi tiết sau:

    • Tên ứng dụng: Công cụ tìm bài chưa được đánh dấu
    • Mô tả: Tìm bài viết không có thẻ
    • URL gọi lại mặc định: /
  4. Bạn sẽ được đưa trở lại trang trước và cung cấp khóa tiêu dùng của bạn.

  5. Sao chép dán khóa bạn đã nhận được vào tập lệnh và chạy nó.

Nếu bạn không quen thuộc với tập lệnh và mã hóa, bạn có thể sử dụng thay thế trang web giải pháp "một lần nhấp" của anh ấy và chỉ cần cung cấp url của Tumblr của bạn.


1
Đây là câu trả lời gần nhất chưa, nhưng không hoàn toàn liên quan. Phần mềm này tìm kiếm các bài đăng không có thẻ trên đó. Mặc dù hữu ích, nhưng thực sự không cần thiết rằng bài đăng của tôi sẽ không có thẻ. Trong ví dụ của tôi, tôi đã đề cập rằng nó sẽ thực sự dễ dàng nếu tôi đã sử dụng một thẻ nhất định để gắn thẻ tất cả các bài viết gốc của mình.
Aventinus

Nó xảy ra với tôi rằng tôi đã hoàn toàn bỏ qua và loại trừ thực tế là một số bài đăng nguồn của bạn có thể đã được gắn thẻ và điều đó sẽ khiến cách tiếp cận này không liên quan sau đó. Tôi hoàn toàn không quen thuộc với mã hóa, nhưng nếu là bạn, có lẽ bạn có thể xem xét việc sửa đổi các số nguyên từ việc chọn các bài đăng nguồn không được đánh dấu thành các bài đăng nguồn được gắn thẻ?
oneqeightyfour 28/03/2016

Vâng, tôi thực sự đã nghĩ về điều đó. Có lẽ tôi sẽ điều chỉnh mã. Không bao giờ là ít hơn, đây là câu trả lời gần nhất chưa.
Aventinus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.