تسهل هذه المكتبة عملية استخراج الصور وتنزيلها من موقع Pinterest. باستخدام السيلينيوم للأتمتة، فإنه يمكّن المستخدمين من استخراج الصور من عنوان URL محدد على موقع Pinterest وحفظها في الدليل المختار.
يتضمن واجهة سطر الأوامر (CLI) للاستخدام المباشر وواجهة برمجة تطبيقات Python للوصول البرمجي. تدعم الأداة استخراج الصور من اللوحات والدبابيس العامة والخاصة باستخدام ملفات تعريف الارتباط للمتصفح. كما يسمح للمستخدمين بحفظ عناوين URL المسروقة في ملف JSON للوصول إليها في المستقبل.
️ تنصل:
هذا المشروع مستقل وغير تابع لموقع Pinterest. انها مصممة فقط للأغراض التعليمية. يرجى العلم أن أتمتة عملية استخراج مواقع الويب قد تتعارض مع شروط الخدمة الخاصة بها. ينكر مالك المستودع أي مسؤولية عن سوء استخدام هذه الأداة. استخدمها بطريقة مسؤولة وعلى مسؤوليتك القانونية.
️ ملاحظة:
هذا المشروع مستوحى من pinterest-image-scraper.
alt
للصور comment
للبيانات الوصفية في الصورة التي تم تنزيلها لسهولة البحث.--client chrome
أو --client firefox
) (راجع طلب السحب pip install pinterest-dl
git clone https://github.com/sean1832/pinterest-dl.git
cd pinterest-dl
pip install .
pinterest-dl [command] [options]
كشط الصور في الوضع المجهول:
قم بنسخ الصور في وضع مجهول، بدون تسجيل الدخول، إلى دليل ./images/art
من عنوان URL الخاص بموقع Pinterest https://www.pinterest.com/pin/1234567
بحد أقصى 30
صورة وبدقة لا تقل عن 512x512
. احفظ عناوين URL المسروقة في ملف JSON
.
pinterest-dl scrape " https://www.pinterest.com/pin/1234567 " " images/art " -l 30 -r 512x512 --json
الحصول على ملفات تعريف الارتباط للمتصفح:
احصل على ملفات تعريف الارتباط للمتصفح لتسجيل الدخول إلى Pinterest واحفظها في ملف cookies.json
في الوضع الرأسي (مع نافذة المتصفح).
pinterest-dl login -o cookies.json --headful
نصيحة
سيُطلب منك إدخال البريد الإلكتروني وكلمة المرور الخاصين بك على موقع Pinterest. ستقوم الأداة بحفظ ملفات تعريف الارتباط للمتصفح في الملف المحدد لاستخدامها في المستقبل.
تجريف المجالس الخاصة:
قم باستخراج الصور من لوحة Pinterest خاصة باستخدام ملفات تعريف الارتباط المحفوظة في ملف cookies.json
.
pinterest-dl scrape " https://www.pinterest.com/pin/1234567 " " images/art " -l 30 -c cookies.json
نصيحة
يمكنك استخدام خيار --client
لاستخدام chrome
أو firefox
Webdriver للتجريد. هذا أبطأ ولكنه أكثر موثوقية. سيتم فتح المتصفح في وضع مقطوعة الرأس لكشط الصور. يمكنك أيضًا استخدام علامة --headful
لتشغيل المتصفح في وضع الإطارات.
تنزيل الصور:
قم بتنزيل الصور من ملف art.json
إلى الدليل ./downloaded_imgs
بدقة لا تقل عن 1024x1024
.
pinterest-dl download art.json -o downloaded_imgs -r 1024x1024
قم بتسجيل الدخول إلى Pinterest باستخدام بيانات الاعتماد الخاصة بك للحصول على ملفات تعريف الارتباط للمتصفح لاستخراج اللوحات والدبابيس الخاصة.
بناء الجملة:
pinterest-dl login [options]
خيارات:
-o
, --output [file]
: ملف لحفظ ملفات تعريف الارتباط للمتصفح لاستخدامها في المستقبل. (الافتراضي: cookies.json
)--client
: اختر عميل الكشط ( chrome
/ firefox
). (الافتراضي: chrome
)--headful
: تشغيل في الوضع headful مع نافذة المتصفح.--verbose
: تمكين الإخراج التفصيلي لتصحيح الأخطاء.--incognito
: قم بتنشيط وضع التصفح المتخفي للتجريد. نصيحة
بعد إدخال أمر login
، سيُطلب منك إدخال البريد الإلكتروني وكلمة المرور الخاصين بك على موقع Pinterest. ستقوم الأداة بعد ذلك بحفظ ملفات تعريف الارتباط للمتصفح في الملف المحدد لاستخدامها في المستقبل. (إذا لم يتم تحديده، فسيتم حفظه في ./cookies.json
)
استخراج الصور من عنوان URL محدد لـ Pinterest.
بناء الجملة:
pinterest-dl scrape [url] [output_dir] [options]
خيارات:
-c
, --cookies [file]
: ملف يحتوي على ملفات تعريف الارتباط للمتصفح للوحات/الدبابيس الخاصة. قم بتشغيل أمر login
للحصول على ملفات تعريف الارتباط.-l
, --limit [number]
: الحد الأقصى لعدد الصور المراد تنزيلها (الافتراضي: 100).-r
, --resolution [width]x[height]
: الحد الأدنى لدقة الصورة للتحميل (على سبيل المثال، 512x512).--timeout [second]
: المهلة بالثواني للطلبات (الافتراضي: 3).--json
: احفظ عناوين URL المسروقة في ملف JSON.--dry-run
: تنفيذ عملية الكشط دون تنزيل الصور.--verbose
: تمكين الإخراج التفصيلي لتصحيح الأخطاء.--client
: اختر عميل التجريف ( api
/ chrome
/ firefox
). (الافتراضي: واجهة برمجة التطبيقات)--incognito
: قم بتنشيط وضع التصفح المتخفي للتجريد. ( كروم/فايرفوكس فقط )--headful
: تشغيل في الوضع headful مع نافذة المتصفح. ( كروم/فايرفوكس فقط ) قم بتنزيل الصور من قائمة عناوين URL المتوفرة في ملف.
بناء الجملة:
pinterest-dl download [url_list] [options]
خيارات:
-o
, --output [directory]
: دليل الإخراج (الافتراضي: ./<json_filename>).-r
, --resolution [width]x[height]
: الحد الأدنى من الدقة للتنزيل (على سبيل المثال 512 × 512).--verbose
: تمكين الإخراج المطول. يمكنك أيضًا استخدام فئة PinterestDL
مباشرةً في كود Python الخاص بك لاستخراج الصور وتنزيلها برمجيًا.
يوضح المثال التالي كيفية استخراج الصور وتنزيلها من عنوان URL الخاص بموقع Pinterest في خطوة واحدة.
from pinterest_dl import PinterestDL
# Initialize and run the Pinterest image downloader with specified settings
images = PinterestDL . with_api (
timeout = 3 , # Timeout in seconds for each request (default: 3)
verbose = False , # Enable detailed logging for debugging (default: False)
). scrape_and_download (
url = "https://www.pinterest.com/pin/1234567" , # Pinterest URL to scrape
output_dir = "images/art" , # Directory to save downloaded images
limit = 30 , # Max number of images to download
min_resolution = ( 512 , 512 ), # Minimum resolution for images (width, height) (default: None)
json_output = "art.json" , # File to save URLs of scraped images (default: None)
dry_run = False , # If True, performs a scrape without downloading images (default: False)
add_captions = True , # Adds image `alt` text as metadata to images (default: False)
)
2 أ. الحصول على ملفات تعريف الارتباط تحتاج أولاً إلى تسجيل الدخول إلى Pinterest للحصول على ملفات تعريف الارتباط للمتصفح لاستخراج اللوحات والدبابيس الخاصة.
import os
import json
from pinterest_dl import PinterestDL
# Make sure you don't expose your password in the code.
email = input ( "Enter Pinterest email: " )
password = os . getenv ( "PINTEREST_PASSWORD" )
# Initialize browser and login to Pinterest
cookies = PinterestDL . with_browser (
browser_type = "chrome" ,
headless = True ,
). login ( email , password ). get_cookies (
after_sec = 7 , # Time to wait before capturing cookies. Login may take time.
)
# Save cookies to a file
with open ( "cookies.json" , "w" ) as f :
json . dump ( cookies , f , indent = 4 )
2ب. كشط ملفات تعريف الارتباط بعد الحصول على ملفات تعريف الارتباط، يمكنك استخدامها لكشط اللوحات والدبابيس الخاصة.
from pinterest_dl import PinterestDL
# Initialize and run the Pinterest image downloader with specified settings
images = (
PinterestDL . with_api ()
. with_cookies (
"cookies.json" , # Path to cookies file
)
. scrape_and_download (
url = "https://www.pinterest.com/pin/1234567" , # Assume this is a private board URL
output_dir = "images/art" , # Directory to save downloaded images
limit = 30 , # Max number of images to download
)
)
استخدم هذا المثال إذا كنت بحاجة إلى مزيد من التحكم الدقيق في استخراج الصور وتنزيلها.
import json
from pinterest_dl import PinterestDL
# 1. Initialize PinterestDL with API.
scraped_images = PinterestDL . with_api (). scrape (
url = "https://www.pinterest.com/pin/1234567" , # URL of the Pinterest page
limit = 30 , # Maximum number of images to scrape
min_resolution = ( 512 , 512 ), # <- Only available to set in the API. Browser mode will have to pruned after download.
)
# 2. Save Scraped Data to JSON
# Convert scraped data into a dictionary and save it to a JSON file for future access
images_data = [ img . to_dict () for img in scraped_images ]
with open ( "art.json" , "w" ) as f :
json . dump ( images_data , f , indent = 4 )
# 3. Download Images
# Download images to a specified directory
downloaded_imgs = PinterestDL . download_images ( images = scraped_images , output_dir = "images/art" )
valid_indices = list ( range ( len ( downloaded_imgs ))) # All images are valid to add captions
# 4. Add Alt Text as Metadata
# Extract `alt` text from images and set it as metadata in the downloaded files
PinterestDL . add_captions ( images = downloaded_imgs , indices = valid_indices )
import json
from pinterest_dl import PinterestDL
# 1. Initialize PinterestDL with API.
scraped_images = PinterestDL . with_browser (
browser_type = "chrome" , # Browser type to use ('chrome' or 'firefox')
headless = True , # Run browser in headless mode
). scrape (
url = "https://www.pinterest.com/pin/1234567" , # URL of the Pinterest page
limit = 30 , # Maximum number of images to scrape
)
# 2. Save Scraped Data to JSON
# Convert scraped data into a dictionary and save it to a JSON file for future access
images_data = [ img . to_dict () for img in scraped_images ]
with open ( "art.json" , "w" ) as f :
json . dump ( images_data , f , indent = 4 )
# 3. Download Images
# Download images to a specified directory
downloaded_imgs = PinterestDL . download_images ( images = scraped_images , output_dir = "images/art" )
# 4. Prune Images by Resolution
# Remove images that do not meet the minimum resolution criteria
valid_indices = PinterestDL . prune_images ( images = downloaded_imgs , min_resolution = ( 200 , 200 ))
# 5. Add Alt Text as Metadata
# Extract `alt` text from images and set it as metadata in the downloaded files
PinterestDL . add_captions ( images = downloaded_imgs , indices = valid_indices )
ترخيص أباتشي 2.0