มีวิธีดูโพสต์ Tumblr ทั้งหมดของฉันที่ไม่ได้รีโหลด


11

ฉันมีโพสต์มากกว่า 7000 รายการในบัญชี Tumblr ของฉัน ส่วนใหญ่ของพวกเขาคือ "reblogs" แต่ส่วนที่เหลือเป็นโพสต์ (ภาพหรือข้อความ) ที่ฉันได้อัปโหลด มีวิธีใดบ้างในการดูโพสต์เหล่านี้หรือไม่? วิธีหนึ่งอาจเป็นไปได้หากฉันใช้แท็กบางตัวกับโพสต์เหล่านี้ แต่ฉันยังไม่มี หากต้องการใช้ถ้อยคำใหม่คำถามของฉัน: มีวิธีดูโพสต์ Tumblr ทั้งหมดที่มีอยู่ซึ่งมีบัญชีของฉันหรือไม่

คำตอบ:


4

ฉันเป็นผู้เขียนสคริปต์ที่ลิงก์ในคำตอบของ @ oneqeightyfour ดังนั้นแม้ว่าฉันจะสายไปงานเลี้ยงเล็กน้อย แต่นี่เป็นสคริปต์ที่ได้รับการแก้ไขซึ่งคุณสามารถใช้ได้

ฉันพบไซต์คลิกเดียวที่อ้างว่าทำเช่นนี้ แต่ฉันไม่สามารถใช้งานได้ คุณอาจต้องการลองก่อน


ขั้นตอนที่ 1: รับคีย์ Tumblr API

การใช้ API นั้นง่ายกว่ามากจากมุมมองการเขียนโปรแกรมแทนที่จะพยายามขูดไซต์ นอกจากนี้ T & C Tumblr ขมวดคิ้วเมื่อคุณเข้าถึงข้อมูลจำนวนมากโดยไม่ต้องผ่าน API

วิธีรับรหัส API:

  1. ตรวจสอบให้แน่ใจว่าคุณลงชื่อเข้าใช้ Tumblr
  2. ของพวกเขาไปที่หน้าลงทะเบียน OAuth
  3. เลือก "ลงทะเบียนแอปพลิเคชัน" และใช้รายละเอียดต่อไปนี้:

    • ชื่อแอปพลิเคชัน:ค้นหาโพสต์ต้นฉบับของฉันทั้งหมด
    • คำอธิบายการใช้งาน:ค้นหาโพสต์ต้นฉบับทั้งหมดบนเว็บไซต์; นั่นคือโพสต์ที่ไม่ใช่เว็บบล็อก
    • URL โทรกลับเริ่มต้น: /
  4. สิ่งนี้จะนำคุณกลับไปที่หน้าแรก คุณจะได้แสดงให้เห็นถึงผู้บริโภคที่สำคัญ OAuth คัดลอกสิ่งนี้ - เราจะใช้ในไม่ช้า

ขั้นตอนที่ 2: ตั้งค่าสคริปต์

นี่เป็นสคริปต์ของฉันที่ได้รับการแก้ไขเล็กน้อย คัดลอกและวางลงในโปรแกรมแก้ไขข้อความ (เช่น TextEdit หรือ Notepad) originals.pyและบันทึกเป็น

คุณควรแทนที่HOSTNAMEตัวแปรด้วย URL ของบล็อกของคุณและAPI_KEYตัวแปรด้วยรหัสผู้ใช้ OAuth ที่คุณดึงมาในขั้นตอนที่ 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!")

ขั้นตอนที่ 3: เรียกใช้สคริปต์

นี่เป็นสคริปต์ Python เหมาะสำหรับ Python 2 หรือ 3 หากคุณใช้ Google คุณควรจะสามารถค้นหาคำแนะนำในการใช้งานสคริปต์ Python สำหรับระบบปฏิบัติการที่คุณเลือก

สคริปต์จะพิมพ์รายการ URL ที่ไม่ได้รับข้อมูลการบันทึกใหม่จาก Tumblr API ในการทดสอบของฉัน (สั้นมาก) ดูเหมือนว่าจะหยิบ URL ที่หยิบขึ้นมาใหม่จำนวนหนึ่ง - ฉันไม่ได้ทำการขุดใด ๆ เพื่อค้นหาสาเหตุที่เป็นเช่นนั้น

มีความสุข! :-)


ขอบคุณมาก ๆ ถึงแม้ว่ามันจะเป็นคำตอบที่ช้า :) :)
Aventinus

3

ใครบางคนบนอินเทอร์เน็ตเขียนสคริปต์นี้และคุณสามารถค้นหาได้ในGithub คุณจะต้องเปลี่ยนพารามิเตอร์ของชื่อโฮสต์และคีย์ API เป็นชื่อโฮสต์ tumblr ของคุณเองและเพิ่มคีย์ API ของคุณเองตามลำดับ

ชื่อโฮสต์ของคุณจะเป็นชื่อ "x.tumblr.com" (โปรดห่อด้วยเครื่องหมาย "")

จากนั้นคุณจะต้องรับรหัส API จาก Tumblr เพื่อทำสิ่งนี้:

  1. ตรวจสอบให้แน่ใจว่าคุณได้ล็อกอินเข้าสู่ Tumblr
  2. เข้าสู่หน้าลงทะเบียน OAuth
  3. คลิกที่สมัครสมาชิกพร้อมรายละเอียดดังต่อไปนี้:

    • ชื่อแอปพลิเคชัน: ตัวค้นหาโพสต์ที่ไม่ติดแท็ก
    • คำอธิบาย:ค้นหาโพสต์ที่ไม่ได้ติดแท็ก
    • URL โทรกลับเริ่มต้น: /
  4. คุณจะถูกนำกลับไปที่หน้าก่อนหน้าและมอบรหัสผู้ใช้ของคุณ

  5. คัดลอกวางรหัสที่คุณได้รับในสคริปต์และเรียกใช้

หากคุณไม่คุ้นเคยกับสคริปต์และการเข้ารหัสคุณสามารถใช้ไซต์โซลูชัน "คลิกเดียว" ของเขาหรือเพียงแค่ระบุ URL ของ Tumblr ของคุณ


1
นี่คือคำตอบที่ใกล้เคียงที่สุด แต่ไม่เกี่ยวข้องทั้งหมด ซอฟต์แวร์ชิ้นนี้ค้นหาโพสต์ที่ไม่มีแท็ก แม้ว่าจะมีประโยชน์ แต่ก็ไม่จำเป็นว่าเป็นเรื่องจริงที่โพสต์ของฉันจะไม่มีแท็ก ในตัวอย่างของฉันฉันพูดถึงว่ามันจะง่ายมากถ้าฉันใช้แท็กบางแท็กเพื่อติดแท็กโพสต์ต้นฉบับทั้งหมดของฉัน
Aventinus

มันเกิดขึ้นกับฉันว่าฉันได้มองข้ามและจัดการกับความจริงที่ว่าบางโพสต์ที่มาของคุณอาจถูกติดแท็กและที่จะทำให้วิธีการนี้ไม่เกี่ยวข้องแล้ว ฉันไม่คุ้นเคยกับการเขียนโค้ด แต่ถ้าคุณเป็นคุณอาจจะดูที่การแก้ไขจำนวนเต็มจากการเลือกโพสต์ที่ไม่ได้ติดแท็กโพสต์ที่ติดแท็กโพสต์ที่มา?
oneqeightyfour

ใช่ฉันคิดอย่างนั้นจริง ๆ บางทีฉันจะปรับรหัส ไม่น้อยกว่านี้เป็นคำตอบที่ใกล้ที่สุด
Aventinus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.