Perpustakaan ini memfasilitasi pengambilan dan pengunduhan gambar dari Pinterest. Menggunakan Selenium untuk otomatisasi, memungkinkan pengguna mengekstrak gambar dari URL Pinterest tertentu dan menyimpannya ke direktori yang dipilih.
Ini mencakup CLI untuk penggunaan langsung dan API Python untuk akses terprogram. Alat ini mendukung pengambilan gambar dari papan dan pin publik dan pribadi menggunakan cookie browser. Ini juga memungkinkan pengguna untuk menyimpan URL yang diambil ke file JSON untuk akses di masa mendatang.
️ Penafian:
Proyek ini independen dan tidak berafiliasi dengan Pinterest. Ini dirancang semata-mata untuk tujuan pendidikan. Perlu diketahui bahwa mengotomatiskan pengikisan situs web mungkin bertentangan dengan Ketentuan Layanan mereka. Pemilik repositori melepaskan tanggung jawab apa pun atas penyalahgunaan alat ini. Gunakan secara bertanggung jawab dan risiko hukum Anda sendiri.
?️ Catatan:
Proyek ini mengambil inspirasi dari pinterest-image-scraper.
alt
untuk gambar sebagai comment
metadata pada gambar yang diunduh agar dapat dicari.--client chrome
atau --client firefox
) (lihat permintaan tarik pip install pinterest-dl
git clone https://github.com/sean1832/pinterest-dl.git
cd pinterest-dl
pip install .
pinterest-dl [command] [options]
Menggores Gambar dalam mode anonim:
Gosok gambar dalam mode anonim, tanpa login, ke direktori ./images/art
dari URL Pinterest https://www.pinterest.com/pin/1234567
dengan batasan 30
gambar dan resolusi minimal 512x512
. Simpan URL yang tergores ke file JSON
.
pinterest-dl scrape " https://www.pinterest.com/pin/1234567 " " images/art " -l 30 -r 512x512 --json
Dapatkan Cookie Peramban:
Dapatkan cookie browser untuk login Pinterest dan simpan ke file cookies.json
dalam mode headful (dengan jendela browser).
pinterest-dl login -o cookies.json --headful
Tip
Anda akan diminta memasukkan email dan kata sandi Pinterest Anda. Alat ini akan menyimpan cookie browser ke file tertentu untuk digunakan di masa mendatang.
Mengikis Papan Pribadi:
Kikis gambar dari papan Pinterest pribadi menggunakan cookie yang disimpan di file cookies.json
.
pinterest-dl scrape " https://www.pinterest.com/pin/1234567 " " images/art " -l 30 -c cookies.json
Tip
Anda dapat menggunakan opsi --client
untuk menggunakan Webdriver chrome
atau firefox
untuk scraping. Ini lebih lambat namun lebih dapat diandalkan. Ini akan membuka browser dalam mode tanpa kepala untuk mengikis gambar. Anda juga dapat menggunakan tanda --headful
untuk menjalankan browser dalam mode berjendela.
Mengunduh Gambar:
Download gambar dari file art.json
ke direktori ./downloaded_imgs
dengan resolusi minimal 1024x1024
.
pinterest-dl download art.json -o downloaded_imgs -r 1024x1024
Masuk ke Pinterest menggunakan kredensial Anda untuk mendapatkan cookie browser untuk mengambil papan dan pin pribadi.
Sintaksis:
pinterest-dl login [options]
Pilihan:
-o
, --output [file]
: File untuk menyimpan cookie browser untuk digunakan di masa mendatang. (default: cookies.json
)--client
: Pilih klien scraping ( chrome
/ firefox
). (standar: chrome
)--headful
: Jalankan dalam mode headful dengan jendela browser.--verbose
: Aktifkan keluaran detail untuk debugging.--incognito
: Mengaktifkan mode penyamaran untuk pengikisan. Tip
Setelah memasukkan perintah login
, Anda akan diminta memasukkan email dan kata sandi Pinterest Anda. Alat tersebut kemudian akan menyimpan cookie browser ke file yang ditentukan untuk digunakan di masa mendatang. (jika tidak ditentukan, itu akan disimpan ke ./cookies.json
)
Ekstrak gambar dari URL Pinterest tertentu.
Sintaksis:
pinterest-dl scrape [url] [output_dir] [options]
Pilihan:
-c
, --cookies [file]
: File yang berisi cookie browser untuk papan/pin pribadi. Jalankan perintah login
untuk mendapatkan cookie.-l
, --limit [number]
: Jumlah maksimum gambar yang akan diunduh (default: 100).-r
, --resolution [width]x[height]
: Resolusi gambar minimum untuk diunduh (misalnya, 512x512).--timeout [second]
: Batas waktu dalam hitungan detik untuk permintaan (default: 3).--json
: Menyimpan URL yang diambil ke file JSON.--dry-run
: Jalankan scrape tanpa mengunduh gambar.--verbose
: Aktifkan keluaran detail untuk debugging.--client
: Pilih klien scraping ( api
/ chrome
/ firefox
). (standar: api)--incognito
: Mengaktifkan mode penyamaran untuk pengikisan. ( hanya chrome/firefox )--headful
: Jalankan dalam mode headful dengan jendela browser. ( hanya chrome/firefox ) Unduh gambar dari daftar URL yang disediakan dalam file.
Sintaksis:
pinterest-dl download [url_list] [options]
Pilihan:
-o
, --output [directory]
: Direktori keluaran (default: ./<json_filename>).-r
, --resolution [width]x[height]
: resolusi minimum untuk diunduh (misalnya 512x512).--verbose
: Mengaktifkan keluaran verbose. Anda juga dapat menggunakan kelas PinterestDL
secara langsung dalam kode Python Anda untuk mengikis dan mengunduh gambar secara terprogram.
Contoh berikut menunjukkan cara mengikis dan mengunduh gambar dari URL Pinterest dalam satu langkah.
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)
)
2a. Mendapatkan cookie Anda harus masuk ke Pinterest terlebih dahulu untuk mendapatkan cookie browser untuk mengambil papan dan pin pribadi.
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 )
2b. Mengikis dengan cookie Setelah mendapatkan cookie, Anda dapat menggunakannya untuk mengikis papan dan pin pribadi.
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
)
)
Gunakan contoh ini jika Anda memerlukan kontrol yang lebih terperinci atas pengambilan dan pengunduhan gambar.
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 )
Lisensi Apache 2.0