كيفية استخراج Pins و Boards من Pinterest في 2026: دليل المطورين

دليل عملي للمطورين حول استخراج Pins و Boards العامة من Pinterest في 2026 باستخدام البروكسيات السكنية و Resource API الداخلي، مع أمثلة كود Python و Node.js وممارسات أخلاقية.

How to Scrape Pinterest Pins and Boards in 2026: A Developer's Guide
En este artículo

تنبيه قانوني: قبل البدء، يجب احترام شروط استخدام Pinterest (Terms of Service) وجميع القوانين المعمول بها، بما في ذلك قانون الاحتيال وإساءة استخدام الكمبيوتر (CFAA) في الولايات المتحدة واللائحة العامة لحماية البيانات (GDPR) في الاتحاد الأوروبي. هذا الدليل يغطي الوصول إلى البيانات العامة فقط ولا يشجع على تجاوز أنظمة الحماية أو استخراج بيانات شخصية دون موافقة. راجع توثيق Pinterest API الرسمي للحصول على وصول مصرّح به.

إذا كنت تبني مجموعات بيانات للاتجاهات البصرية أو تحلل محتوى منصات الوسائط، فمن المحتمل أنك تتساءل عن كيفية استخراج Pins و Boards من Pinterest في 2026. Pinterest هو أحد أكبر منصات اكتشاف المحتوى المرئي، مع أكثر من 500 مليون مستخدم نشط شهريًا حول العالم. البيانات العامة على المنصة — من Pins و Boards إلى نتائج البحث — توفّر ثروة من المعلومات للباحثين والمطوّرين. لكن استخراجها يتطلّب فهماً عميقاً للبنية التقنية للمنصة واستراتيجيات البروكسي المناسبة.

ما تحتاج معرفته قبل استخراج Pins و Boards من Pinterest في 2026

Pinterest يعرض محتوى عامًا يمكن تصفّحه دون تسجيل دخول على مستويات متعددة: صفحات Pins الفردية، موجزات Boards العامة، ونتائج البحث. لكن الصفحة الرئيسية المخصّصة (home feed) ولوحات المعلومات الشخصية تتطلب مصادقة. من الضروري التمييز بين ما يمكن الوصول إليه قانونيًا وأخلاقيًا وما هو محمي خلف جدار تسجيل الدخول.

الأسطح العامة مقابل المحتوى المغلق خلف تسجيل الدخول

السطحيتطلب تسجيل دخول؟قابل للاستخراج؟ملاحظات
صفحة Pin فرديةلانعم (بيانات عامة)متاحة عبر URL مباشر
موجز Board عاملانعم (بيانات عامة)يتطلب ترقيم صفحات عبر bookmarks
نتائج البحثلانعم (محدود)النتائج مُخصّصة جغرافيًا
Home Feed المخصصنعملا (أخلاقيًا)محتوى مخصص للمستخدم
بيانات المستخدم الشخصيةنعملا (قانونيًا)محمي بموجب GDPR و CCPA

واجهة Pinterest API الرسمية v5

يوفّر Pinterest واجهة برمجة تطبيقات رسمية بإصدار v5 للوصول المصرّح به إلى البيانات. واجهة API هذه مناسبة لتطبيقات الإنتاج التي تحتاج إلى تكامل مباشر مع المنصة. ومع ذلك، فإنها تفرض قيودًا صارمة على معدّلات الطلبات وتتطلب موافقة Pinterest على التطبيق. للحصول على تفاصيل كاملة، راجع توثيق Pinterest Developers. في كثير من حالات الاستخدام البحثي أو تحليل الاتجاهات، يلجأ المطورون إلى استخراج البيانات العامة مباشرة لأن واجهة API الرسمية قد لا توفّر نفس مستوى المرونة في التصفية والترتيب.

البنية التقنية: فهم Resource API الداخلي لـ Pinterest

يعتمد Pinterest على بنية داخلية تُعرف بـ Resource API. هذه ليست واجهة API عامة موثّقة، بل هي نقاط نهاية داخلية تستدعيها واجهة الويب الأمامية لتحميل البيانات بشكل ديناميكي. فهم هذه البنية هو مفتاح استخراج البيانات بكفاءة.

نقاط النهاية الرئيسية

تشمل نقاط النهاية الأكثر استخدامًا:

  • PinResource: /resource/PinResource/get/ — لجلب بيانات Pin واحد عبر معرّفه.
  • BoardFeedResource: /resource/BoardFeedResource/get/ — لجلب قائمة Pins ضمن Board معين مع ترقيم صفحات.
  • SearchResource: /resource/SearchResource/get/ — لجلب نتائج البحث عن كلمات مفتاحية.

كل طلب يتطلب تمرير معامل source_url= ومعامل data= الذي يحتوي على JSON مُرمّز URL. على سبيل المثال، لجلب موجز Board، يبدو الطلب كالتالي:

GET /resource/BoardFeedResource/get/?source_url=/username/board-name/&data={"options":{"board_id":"username/board-name","page_size":25,"field_set_key":"react_grid_pin"},"context":{}}

الترويسات (Headers) المطلوبة

لكي يعتبر Pinterest الطلب طلبًا شرعيًا من المتصفح، يجب تضمين ترويسات محددة:

  • X-Pinterest-PWS-Handler: يحدّد معالج الواجهة الأمامية، مثل www/[username]/[board].js
  • X-APP-VERSION: نسخة التطبيق الحالية، مثل a89e7e7 — تتغير دوريًا
  • csrftoken: رمز CSRF للحماية من الطلبات المتقاطعة، يُستخرج من ملفات تعريف الارتباط
  • User-Agent: يجب أن يتطابق مع متصفح حقيقي

بدون هذه الترويسات، سيرفض Pinterest الطلب أو يعيد استجابة فارغة. من المهم ملاحظة أن قيم الترويسات تتغير مع تحديثات Pinterest، لذا يجب مراقبتها بانتظام.

الواقع المضاد للبوتات: لماذا تحتاج إلى بروكسيات سكنية

يستخدم Pinterest أنظمة كشف متطورة لتحديد الطلبات الآلية. هذه الأنظمة تعتمد على عدة عوامل:

  • معدل الطلبات لكل عنوان IP: عناوين IP التي تصدر عددًا كبيرًا من الطلبات في وقت قصير تُعلّم وتُحجب. الحد التقريبي يتراوح بين 50-100 طلب لكل دقيقة قبل تفعيل الحماية.
  • تقييم البصمة (Bot Scoring): يحلل Pinterest أنماط الطلب، الترويسات، وملفات تعريف الارتباط لتعيين درجة خطر لكل طلب. الدرجات العالية تؤدي إلى تحديات CAPTCHA أو حظر كامل.
  • التوطين الجغرافي: نتائج البحث والتوصيات على Pinterest مُخصّصة جغرافيًا. طلب من عنوان IP في ألمانيا قد يرى نتائج مختلفة عن طلب من الولايات المتحدة لنفس الكلمة المفتاحية.

لماذا البروكسيات السكنية بالتحديد؟

البروكسيات السكنية توفّر عناوين IP تابعة لمزودي خدمة إنترنت حقيقيين، مما يجعلها تبدو كأنها من مستخدمين فعليين. هذا أمر بالغ الأهمية لأن:

  1. عناوين IP الخاصة بمراكز البيانات تُكتشف بسهولة وتُحجب بسرعة، غالبًا خلال أقل من 200 طلب.
  2. البروكسيات السكنية مع التوطين الجغرافي (مثل -country-US) تضمن الحصول على نتائج متسقة ومحلية.
  3. تدوير عناوين IP يقلّل من احتمالية تفعيل أنظمة كشف البوتات.

يمكنك الاطلاع على خيارات البروكسي المتاحة عبر صفحة المواقع في ProxyHat.

التطبيق العملي: استخراج موجز Board باستخدام Python

فيما يلي مثال عملي باستخدام Python ومكتبة requests مع بروكسيات ProxyHat السكنية. يستخدم هذا المثال جلسة ثابتة (sticky session) لضمان استمرارية ملفات تعريف الارتباط ورمز CSRF.

import requests
import json
from urllib.parse import quote
import time

# ProxyHat residential proxy with US geo and sticky session
proxy_url = "http://user-country-US-session-abc123:pass@gate.proxyhat.com:8080"
proxies = {"http": proxy_url, "https": proxy_url}

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "X-Pinterest-PWS-Handler": "www/[username]/[board].js",
    "X-APP-VERSION": "a89e7e7",
    "Accept": "application/json",
}

session = requests.Session()
session.headers.update(headers)
session.proxies.update(proxies)

board = "username/board-name"
all_pins = []
bookmark = None

for page in range(5):  # Paginate up to 5 pages
    options = {
        "board_id": board,
        "page_size": 25,
        "currentFilter": -1,
        "field_set_key": "react_grid_pin",
    }
    if bookmark:
        options["bookmarks"] = [bookmark]

    data_param = json.dumps({"options": options, "context": {}})
    url = f"https://www.pinterest.com/resource/BoardFeedResource/get/?source_url=/{board}/&data={quote(data_param)}"

    resp = session.get(url)
    if resp.status_code != 200:
        print(f"Error on page {page}: {resp.status_code}")
        break

    body = resp.json()
    pins = body["resource_response"]["data"]
    for pin in pins:
        all_pins.append({
            "id": pin.get("id"),
            "title": pin.get("title", ""),
            "image": pin.get("images", {}).get("orig", {}).get("url", ""),
            "link": pin.get("link", ""),
        })

    bookmark = body["resource_response"].get("bookmark")
    if not bookmark:
        break  # No more pages

    time.sleep(2)  # Pace requests to avoid rate limits

print(f"Collected {len(all_pins)} pins")
for p in all_pins[:3]:
    print(json.dumps(p, indent=2, ensure_ascii=False))

هذا المثال يجمع حتى 125 Pin (5 صفحات × 25 Pin لكل صفحة) مع تأخير ثانيتين بين كل صفحة لتقليل خطر الحظر. لاحظ استخدام -session-abc123 في اسم المستخدم للحفاظ على نفس عنوان IP طوال الجلسة، مما يضمن استمرارية ملفات تعريف الارتباط ورمز CSRF.

مثال Node.js: استخراج نتائج البحث عبر بوابة HTTP

فيما يلي مثال بـ Node.js يستخدم بوابة ProxyHat HTTP على المنفذ 8080 لاستخراج نتائج البحث العامة من Pinterest.

const { HttpsProxyAgent } = require('https-proxy-agent');
const fetch = require('node-fetch');

const proxyAgent = new HttpsProxyAgent(
  'http://user-country-US-session-search1:pass@gate.proxyhat.com:8080'
);

const query = 'minimalist interior design';
const dataParam = encodeURIComponent(JSON.stringify({
  options: {
    query: query,
    page_size: 25,
    scope: 'pins',
    field_set_key: 'react_grid_pin'
  },
  context: {}
}));

const url = `https://www.pinterest.com/resource/SearchResource/get/?source_url=/search/pins/?q=${encodeURIComponent(query)}&data=${dataParam}`;

const headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
  'X-Pinterest-PWS-Handler': 'www/search/[scope].js',
  'X-APP-VERSION': 'a89e7e7',
  'Accept': 'application/json'
};

fetch(url, { agent: proxyAgent, headers })
  .then(res => res.json())
  .then(json => {
    const results = json.resource_response.data;
    console.log(`Found ${results.length} pins for "${query}"`);
    results.forEach(pin => {
      console.log({
        id: pin.id,
        title: pin.title || '',
        image: pin.images?.orig?.url || '',
        link: pin.link || ''
      });
    });
  })
  .catch(err => console.error('Fetch error:', err));

ترقيم الصفحات، الجلسات الثابتة، وإدارة البصمة

ترقيم الصفحات عبر Bookmarks

يستخدم Pinterest نظام ترقيم صفحات يعتمد على المؤشرات (cursors) المسماة bookmarks. كل استجابة تحتوي على حقل bookmark في resource_response. لتقديم الصفحة التالية، تُمرر قيمة الـ bookmark في options.bookmarks. عند إرجاع استجابة بدون bookmark، فهذا يعني أنه لا توجد المزيد من النتائج.

من المهم ملاحظة أن الـ bookmarks تنتهي صلاحيتها بعد فترة زمنية — عادةً بعد 30-60 دقيقة. لذلك يجب استئناف الترقيم من البداية إذا انقضى وقت طويل بين الطلبات.

الجلسات الثابتة (Sticky Sessions)

عند العمل مع Pinterest، من الضروري الحفاظ على نفس عنوان IP طوال جلسة الاستخراج. هذا لأن:

  • رمز csrftoken مرتبط بملف تعريف ارتباط والذي بدوره مرتبط بعنوان IP.
  • تغيير عنوان IP في منتصف الجلسة قد يؤدي إلى رفض الطلبات أو إعادة تعيين الجلسة.
  • الجلسات الثابتة تحاكي سلوك المستخدم الحقيقي الذي يتصفّح عدة صفحات من نفس الجهاز.

مع ProxyHat، يمكنك تفعيل الجلسات الثابتة عبر إضافة -session-IDENTIFIER إلى اسم المستخدم. كل معرّف فريد ينتج عنه عنوان IP ثابت لمدة تصل إلى 30 دقيقة.

التحكم في معدل الطلبات (Pacing)

الإفراط في الطلبات هو السبب الأول للحظر. اتبع هذه المبادئ:

  • حافظ على تأخير 2-5 ثوانٍ بين كل طلب.
  • أضف تأخيرًا عشوائيًا (jitter) لمحاكاة السلوك البشري.
  • لا تتجاوز 100 طلب لكل دقيقة لكل عنوان IP.
  • استخدم التدوير بين الجلسات عند الوصول إلى حدود معقولة من الطلبات.

نظافة User-Agent

ترويسة User-Agent هي أحد أهم مؤشرات البصمة. اتبع هذه القواعد:

  • استخدم User-Agent حديث ومتطابق مع متصفح حقيقي.
  • لا تستخدم نفس User-Agent لجميع الطلبات — نوّع بين إصدارات Chrome و Firefox.
  • تأكد من أن User-Agent متوافق مع الترويسات الأخرى (مثل Accept-Language).
  • تجنب User-Agents المعروفة بأنها تابعة لمكتبات HTTP مثل python-requests/2.x أو node-fetch.

لمزيد من التفاصيل حول الترويسات القياسية، راجع توثيق MDN لـ User-Agent.

أخطاء شائعة وحالات حدية

1. تجاهل تحديث X-APP-VERSION

قيمة X-APP-VERSION تتغير مع كل تحديث لـ Pinterest. استخدام قيمة قديمة سيؤدي إلى رفض الطلبات. الحل: راقب صفحة Pinterest بشكل دوري واستخرج القيمة الحالية من ترويسات الطلبات في متصفحك.

2. عدم معالجة استجابات الخطأ

Pinterest قد يعيد استجابات فارغة أو صفحات HTML بدلاً من JSON عند اكتشاف البوت. يجب التحقق من:

  • كود الحالة (200 مقابل 403 أو 429).
  • نوع المحتوى (JSON مقابل HTML).
  • وجود حقل resource_response في الاستجابة.

3. استخراج بيانات محمية

البيانات خلف تسجيل الدخول — مثل موجز الصفحة الرئيسية أو Boards الخاصة — محمية بقوانين مثل CFAA في الولايات المتحدة. لمزيد من المعلومات حول الإطار القانوني، راجع مقالة Wikipedia عن CFAA. احرص على استخراج البيانات العامة فقط وتجنب أي محتوى يتطلب مصادقة.

إعداد ProxyHat والروابط الداخلية

للبدء مع ProxyHat، يمكنك الاطلاع على صفحة الأسعار لاختيار الخطة المناسبة. إذا كنت تعمل على مشاريع استخراج بيانات أكبر، يمكنك زيارة صفحة حالة استخدام استخراج الويب و صفحة تتبّع نتائج محركات البحث لفهم المزيد من السيناريوهات. للتوثيق الفني الكامل، راجع مستندات ProxyHat.

المعاملالقيمة
بوابة البروكسيgate.proxyhat.com
منفذ HTTP8080
منفذ SOCKS51080
صيغة HTTP URLhttp://USERNAME:PASSWORD@gate.proxyhat.com:8080
صيغة SOCKS5 URLsocks5://USERNAME:PASSWORD@gate.proxyhat.com:1080

الاستخراج الأخلاقي ومتى تستخدم واجهة API الرسمية

الاستخراج الأخلاقي ليس مجرد امتثال قانوني — بل هو ممارسة مستدامة تضمن استمرارية الوصول إلى البيانات. اتبع هذه المبادئ:

  • استخرج البيانات العامة فقط: Pins و Boards العامة ونتائج البحث المتاحة دون تسجيل دخول.
  • احترم robots.txt: تحقق من ملف robots.txt الخاص بـ Pinterest قبل أي عملية استخراج.
  • تجنب البيانات الشخصية: لا تستخرج معلومات مستخدمين شخصية أو تفاعلات فردية. هذا محمي بموجب GDPR في الاتحاد الأوروبي و CCPA في كاليفورنيا.
  • استخدم واجهة API الرسمية للإنتاج: إذا كان مشروعك يتطلب بيانات Pinterest بشكل مستمر وموثوق، فإن واجهة Pinterest API v5 هي الخيار الأفضل. إنها توفر وصولاً مصرّحًا به ومستقرًا.
  • حدّ من معدل الطلبات: لا تضع عبئًا غير مبرّر على بنية Pinterest التحتية. استخرج ما تحتاجه فقط.

الاستخراج المباشر من Resource API الداخلي مناسب للبحث الأكاديمي وتحليل الاتجاهات ومجموعات البيانات المؤقتة. أما للتطبيقات التجارية طويلة الأمد، فإن واجهة API الرسمية توفّر موثوقية وضمانات قانونية لا يوفّرها الاستخراج المباشر.

النقاط الرئيسية

  • الأسطح العامة فقط: استخرج Pins و Boards ونتائج البحث المتاحة دون تسجيل دخول. تجنب المحتوى المغلق خلف المصادقة.
  • Resource API الداخلي: استخدم نقاط النهاية مثل BoardFeedResource و SearchResource مع الترويسات الصحيحة (X-Pinterest-PWS-Handler، X-APP-VERSION، csrftoken).
  • البروكسيات السكنية ضرورية: استخدم بروكسيات سكنية مع التوطين الجغرافي (-country-US) لتجنّب الحظر والحصول على نتائج متسقة.
  • الجلسات الثابتة: استخدم -session-IDENTIFIER للحفاظ على استمرارية عنوان IP ورمز CSRF طوال الجلسة.
  • تحكّم في المعدل: حافظ على تأخير 2-5 ثوانٍ بين الطلبات ولا تتجاوز 100 طلب لكل دقيقة لكل عنوان IP.
  • الأخلاق أولاً: احترم شروط الخدمة و robots.txt و GDPR. استخدم واجهة API الرسمية للتطبيقات الإنتاجية.

الأسئلة الشائعة

هل يمكنني استخراج بيانات Pinterest دون بروكسي؟

من الناحية التقنية نعم، لكنك ستواجه حظرًا سريعًا بعد حوالي 50-100 طلب. Pinterest يستخدم أنظمة كشف بوتات متطورة تحلل معدل الطلبات والبصمة. البروكسيات السكنية مع التدوير توزّع الطلبات على عناوين IP متعددة، مما يقلّل من خطر الحظر بشكل كبير.

ما الفرق بين Pinterest API v5 و Resource API الداخلي؟

واجهة Pinterest API v5 هي واجهة رسمية موثّقة تتطلب تسجيل تطبيق وموافقة من Pinterest. إنها مناسبة للإنتاج لكنها مقيدة بحدود معدل الطلبات ونطاق البيانات. Resource API الداخلي هو واجهة غير موثّقة تستخدمها واجهة الويب الأمامية، ويوفر مرونة أكبر لكنه غير مضمون وقد يتغير دون إشعار.

أي نوع من البروكسيات يعمل بشكل أفضل مع Pinterest؟

البروكسيات السكنية هي الخيار الأفضل لأنها توفر عناوين IP تابعة لمزودي خدمة إنترنت حقيقيين. البروكسيات الخاصة بمراكز البيانات تُكتشف بسهولة وتُحجب بسرعة. مع ProxyHat، يمكنك استخدام التدوير الجغرافي مثل -country-US للحصول على نتائج محلية متسقة، و -session-IDENTIFIER للجلسات الثابتة.

كيف أتجنّب الحظر عند استخراج بيانات Pinterest؟

اتبع هذه الممارسات: استخدم بروكسيات سكنية مع تدوير، حافظ على تأخير 2-5 ثوانٍ بين الطلبات، استخدم User-Agent متوافقًا مع متصفح حقيقي، استخدم جلسات ثابتة للحفاظ على استمرارية ملفات تعريف الارتباط، وراقب استجابات الخطأ وتوقّف فورًا عند رؤية أكواد 403 أو 429. لا تتجاوز 100 طلب لكل دقيقة لكل عنوان IP.

هل استخراج بيانات Pinterest قانوني؟

استخراج البيانات العامة المتاحة دون تسجيل دخول يقع عمومًا في منطقة قانونية رمادية. يعتمد الأمر على الولاية القضائية وشروط الاستخدام. في الولايات المتحدة، قانون CFAA يحدّد ما يُعتبر وصولاً غير مصرّح به. في الاتحاد الأوروبي، GDPR يحمي البيانات الشخصية. من الضروري استشارة مستشار قانوني قبل أي مشروع استخراج بيانات واسع النطاق، واستخدام واجهة API الرسمية عندما تكون متاحة.

Preguntas frecuentes

هل يمكنني استخراج بيانات Pinterest دون بروكسي؟

من الناحية التقنية نعم، لكنك ستواجه حظرًا سريعًا بعد حوالي 50-100 طلب. Pinterest يستخدم أنظمة كشف بوتات متطورة تحلل معدل الطلبات والبصمة. البروكسيات السكنية مع التدوير توزّع الطلبات على عناوين IP متعددة، مما يقلّل من خطر الحظر بشكل كبير.

ما الفرق بين Pinterest API v5 و Resource API الداخلي؟

واجهة Pinterest API v5 هي واجهة رسمية موثّقة تتطلب تسجيل تطبيق وموافقة من Pinterest. إنها مناسبة للإنتاج لكنها مقيدة بحدود معدل الطلبات ونطاق البيانات. Resource API الداخلي هو واجهة غير موثّقة تستخدمها واجهة الويب الأمامية، ويوفر مرونة أكبر لكنه غير مضمون وقد يتغير دون إشعار.

أي نوع من البروكسيات يعمل بشكل أفضل مع Pinterest؟

البروكسيات السكنية هي الخيار الأفضل لأنها توفر عناوين IP تابعة لمزودي خدمة إنترنت حقيقيين. البروكسيات الخاصة بمراكز البيانات تُكتشف بسهولة وتُحجب بسرعة. مع ProxyHat، يمكنك استخدام التدوير الجغرافي مثل -country-US للحصول على نتائج محلية متسقة، و -session-IDENTIFIER للجلسات الثابتة.

كيف أتجنّب الحظر عند استخراج بيانات Pinterest؟

اتبع هذه الممارسات: استخدم بروكسيات سكنية مع تدوير، حافظ على تأخير 2-5 ثوانٍ بين الطلبات، استخدم User-Agent متوافقًا مع متصفح حقيقي، استخدم جلسات ثابتة للحفاظ على استمرارية ملفات تعريف الارتباط، وراقب استجابات الخطأ وتوقّف فورًا عند رؤية أكواد 403 أو 429. لا تتجاوز 100 طلب لكل دقيقة لكل عنوان IP.

هل استخراج بيانات Pinterest قانوني؟

استخراج البيانات العامة المتاحة دون تسجيل دخول يقع عمومًا في منطقة قانونية رمادية. يعتمد الأمر على الولاية القضائية وشروط الاستخدام. في الولايات المتحدة، قانون CFAA يحدّد ما يُعتبر وصولاً غير مصرّح به. في الاتحاد الأوروبي، GDPR يحمي البيانات الشخصية. من الضروري استشارة مستشار قانوني قبل أي مشروع استخراج بيانات واسع النطاق.

¿Listo para empezar?

Accede a más de 50M de IPs residenciales en más de 148 países con filtrado impulsado por IA.

Ver preciosProxies residenciales
← Volver al Blog