Instagram และ TikTok คือสองเป้าหมายกระแสหลักที่ scraping ยากที่สุด — ยากกว่า Google ยากกว่า Amazon ทั้งคู่ใช้การให้คะแนน IP อย่างดุดัน ทั้งคู่ทำ fingerprint client ของคุณในหลายชั้น และทั้งคู่ขึ้นชื่อเรื่อง soft block: แทนที่จะได้ 403 ชัด ๆ คุณกลับได้กำแพงล็อกอิน, JSON ว่างเปล่า, "challenge_required" หรือผลลัพธ์ที่ถูกตัดทอนเงียบ ๆ scraper ของคุณ "ทำงานได้" แต่ข้อมูลของคุณคือขยะ
คู่มือนี้ครอบคลุมว่าแต่ละแพลตฟอร์มบล็อกคุณจริง ๆ อย่างไรในปี 2026 การตั้งค่าพร็อกซีที่อยู่รอด และรูปแบบคำขอที่ทำให้บัญชีและเซสชันยังมีชีวิตอยู่ (สำหรับการ จัดการ หลายบัญชี ไม่ใช่การ scraping ดูคู่มือ AdsPower/Multilogin และ GoLogin/Dolphin Anty ของเรา)
challenge_required ความอดทนของ Instagram ต่อ IP residential ที่ถูกใช้ร่วมกัน/ถูกใช้ในทางผิด ๆ ก็ต่ำเช่นกัน — คุณภาพของพูลสำคัญที่นี่มากกว่าแทบทุกที่X-Bogus/signature ที่สร้างขึ้นโดย JavaScript ที่ถูกทำให้อ่านยาก การ scraping แบบ HTTP ล้วนหมายถึงการ reverse-engineer signature ที่หมุนเปลี่ยนทุกไม่กี่สัปดาห์ — ทีมส่วนใหญ่จึงรันเบราว์เซอร์จริง (Playwright) แทนแล้วดักจับ JSON responseitemList ว่างเปล่าที่ดูเหมือน "ไม่มีเนื้อหาเพิ่มแล้ว")# One identity = one sticky session, country-pinned
socks5h://USERNAME:[email protected]:913
การหมุนต่อคำขอใช้ได้ดีกับหน้า สาธารณะแบบ anonymous ที่ปริมาณต่ำ ทันทีที่มี session cookie หรือการล็อกอินเข้ามาเกี่ยวข้อง ให้สลับไปใช้ sticky — cookie และ IP ต้องเคลื่อนไหวเป็นตัวตนเดียวกัน (ทำไม)
from curl_cffi import requests
PROXY = {"https": "socks5h://USERNAME:[email protected]:913"}
# Public profile JSON (no login) - impersonate Chrome's TLS
r = requests.get(
"https://www.instagram.com/api/v1/users/web_profile_info/?username=nasa",
impersonate="chrome",
headers={"X-IG-App-ID": "936619743392459"},
proxies=PROXY,
)
data = r.json()["data"]["user"]
print(data["edge_followed_by"]["count"])
ดูที่ response ไม่ใช่ status code: ค่า 200 ที่มี {"data": null} หรือการ redirect ไปยัง /accounts/login/ หมายความว่าโควตาของ IP นี้ถูกใช้หมดแล้ว — หมุนตัวตน ถอยออกมา แล้วค่อยทำต่อ
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(proxy={
"server": "us.jibaoproxy.com:913",
"username": "USERNAME", "password": "PASSWORD",
})
page = browser.new_page()
items = []
# Let TikTok's own JS sign the requests; we just read the answers
page.on("response", lambda res:
items.extend(res.json().get("itemList", []))
if "/api/post/item_list" in res.url else None)
page.goto("https://www.tiktok.com/@nasa")
for _ in range(5):
page.mouse.wheel(0, 2500)
page.wait_for_timeout(1800) # human-ish scroll cadence
print(len(items), "videos captured")
วิธีนี้เลี่ยงการ reverse-engineer signature ไปได้ทั้งหมด: หน้าเว็บสร้าง X-Bogus ที่ถูกต้องเอง และคุณเก็บเกี่ยว JSON ต้องตั้งค่าพร็อกซีตอนเปิดเบราว์เซอร์ — ลูกเล่นเรื่องการ auth ครอบคลุมอยู่ใน การยืนยันตัวตนพร็อกซีของ Playwright
challenge_required, itemList ว่างเปล่าที่มี hasMore: true| TikTok | ||
|---|---|---|
| เส้นทางเข้าถึงที่ดีที่สุด | Web GraphQL/API endpoint, curl_cffi | Playwright + การดักจับ response |
| ประเภทพร็อกซี | Residential sticky ต่อหนึ่งตัวตน | Residential จับคู่ตามภูมิภาคกับตลาด |
| IP datacenter | กำแพงล็อกอิน / challenge | captcha ทันที |
| สัญญาณ soft-block | redirect ไปล็อกอิน, challenge_required, data เป็น null | itemList ว่างเปล่า, หน้า captcha |
| ความไวต่อภูมิภาค | ปานกลาง | สูง — เนื้อหาต่างกันตามประเทศ |
ปักหมุดประเทศ, sticky session, ASN สะอาด — 500MB ทราฟฟิกฟรี ไม่ต้องใช้บัตร
เริ่มทดลองใช้ฟรีผู้ใช้ใหม่รับ 500MB เมื่อสมัครสมาชิก พร้อมโบนัสในการเติมเงินครั้งแรก ข้อเสนอมีระยะเวลาจำกัด