Diese Bibliothek erleichtert das Scrapen und Herunterladen von Bildern von Pinterest. Mithilfe von Selenium zur Automatisierung können Benutzer Bilder von einer bestimmten Pinterest-URL extrahieren und in einem ausgewählten Verzeichnis speichern.
Es umfasst eine CLI für die direkte Nutzung und eine Python-API für den programmgesteuerten Zugriff. Das Tool unterstützt das Scrapen von Bildern aus öffentlichen und privaten Pinnwänden und Pins mithilfe von Browser-Cookies. Außerdem können Benutzer gescrapte URLs für den späteren Zugriff in einer JSON-Datei speichern.
️ Haftungsausschluss:
Dieses Projekt ist unabhängig und steht in keiner Verbindung zu Pinterest. Es ist ausschließlich für Bildungszwecke konzipiert. Bitte beachten Sie, dass die Automatisierung des Scrapings von Websites möglicherweise im Widerspruch zu deren Nutzungsbedingungen steht. Der Repository-Eigentümer lehnt jegliche Haftung für den Missbrauch dieses Tools ab. Benutzen Sie es verantwortungsvoll und auf eigenes rechtliches Risiko.
?️ Hinweis:
Dieses Projekt wurde von pinterest-image-scraper inspiriert.
alt
für Bilder als comment
in das heruntergeladene Bild ein, um die Durchsuchbarkeit zu verbessern.--client chrome
oder --client firefox
angeben) (siehe Pull-Anfrage pip install pinterest-dl
git clone https://github.com/sean1832/pinterest-dl.git
cd pinterest-dl
pip install .
pinterest-dl [command] [options]
Scraping von Bildern im anonymen Modus:
Scrapen Sie Bilder im anonymen Modus, ohne Anmeldung, in das Verzeichnis ./images/art
von der Pinterest-URL https://www.pinterest.com/pin/1234567
mit einem Limit von 30
Bildern und einer Mindestauflösung von 512x512
. Speichern Sie gescrapte URLs in einer JSON
Datei.
pinterest-dl scrape " https://www.pinterest.com/pin/1234567 " " images/art " -l 30 -r 512x512 --json
Browser-Cookies abrufen:
Holen Sie sich Browser-Cookies für die Pinterest-Anmeldung und speichern Sie sie im Headful-Modus (mit Browserfenster) in der Datei „ cookies.json
.
pinterest-dl login -o cookies.json --headful
Tipp
Sie werden aufgefordert, Ihre Pinterest-E-Mail-Adresse und Ihr Passwort einzugeben. Das Tool speichert die Browser-Cookies für die zukünftige Verwendung in der angegebenen Datei.
Private Boards abkratzen:
Scrapen Sie Bilder von einem privaten Pinterest-Board mithilfe der in der Datei „ cookies.json
gespeicherten Cookies.
pinterest-dl scrape " https://www.pinterest.com/pin/1234567 " " images/art " -l 30 -c cookies.json
Tipp
Sie können die Option --client
verwenden, um chrome
oder firefox
-Webdriver zum Scrapen zu verwenden. Dies ist langsamer, aber zuverlässiger. Es öffnet sich ein Browser im Headless-Modus zum Scrapen von Bildern. Sie können auch das Flag --headful
verwenden, um den Browser im Fenstermodus auszuführen.
Bilder herunterladen:
Laden Sie Bilder aus der Datei art.json
in das Verzeichnis ./downloaded_imgs
mit einer Mindestauflösung von 1024x1024
herunter.
pinterest-dl download art.json -o downloaded_imgs -r 1024x1024
Melden Sie sich mit Ihren Anmeldedaten bei Pinterest an, um Browser-Cookies zum Scrapen privater Boards und Pins zu erhalten.
Syntax:
pinterest-dl login [options]
Optionen:
-o
, --output [file]
: Datei zum Speichern von Browser-Cookies für die zukünftige Verwendung. (Standard: cookies.json
)--client
: Wählen Sie den Scraping-Client ( chrome
/ firefox
). (Standard: chrome
)--headful
: Im Headful-Modus mit Browserfenster ausführen.--verbose
: Detaillierte Ausgabe zum Debuggen aktivieren.--incognito
: Inkognito-Modus zum Scrapen aktivieren. Tipp
Nach Eingabe login
werden Sie aufgefordert, Ihre Pinterest-E-Mail-Adresse und Ihr Passwort einzugeben. Das Tool speichert dann die Browser-Cookies zur späteren Verwendung in der angegebenen Datei. (Wenn nicht angegeben, wird es unter ./cookies.json
gespeichert.)
Extrahieren Sie Bilder von einer bestimmten Pinterest-URL.
Syntax:
pinterest-dl scrape [url] [output_dir] [options]
Optionen:
-c
, --cookies [file]
: Datei mit Browser-Cookies für private Boards/Pins. Führen Sie den login
aus, um Cookies zu erhalten.-l
, --limit [number]
: Maximale Anzahl der herunterzuladenden Bilder (Standard: 100).-r
, --resolution [width]x[height]
: Mindestbildauflösung für den Download (z. B. 512x512).--timeout [second]
: Timeout in Sekunden für Anfragen (Standard: 3).--json
: Scraped-URLs in einer JSON-Datei speichern.--dry-run
: Scrape ausführen, ohne Bilder herunterzuladen.--verbose
: Detaillierte Ausgabe zum Debuggen aktivieren.--client
: Wählen Sie den Scraping-Client ( api
/ chrome
/ firefox
). (Standard: API)--incognito
: Inkognito-Modus zum Scrapen aktivieren. ( nur Chrome/Firefox )--headful
: Im Headful-Modus mit Browserfenster ausführen. ( nur Chrome/Firefox ) Laden Sie Bilder aus einer Liste von URLs herunter, die in einer Datei bereitgestellt werden.
Syntax:
pinterest-dl download [url_list] [options]
Optionen:
-o
, --output [directory]
: Ausgabeverzeichnis (Standard: ./<json_filename>).-r
, --resolution [width]x[height]
: Mindestauflösung zum Herunterladen (z. B. 512x512).--verbose
: Aktiviert die ausführliche Ausgabe. Sie können die PinterestDL
-Klasse auch direkt in Ihrem Python-Code verwenden, um Bilder programmgesteuert zu scrappen und herunterzuladen.
Das folgende Beispiel zeigt, wie man in einem Schritt Bilder von einer Pinterest-URL scrapt und herunterlädt.
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. Cookies abrufen Sie müssen sich zunächst bei Pinterest anmelden, um Browser-Cookies zum Scrapen privater Boards und Pins zu erhalten.
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. Mit Keksen kratzen Nachdem Sie Kekse erhalten haben, können Sie diese zum Schaben privater Bretter und Stecknadeln verwenden.
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
)
)
Verwenden Sie dieses Beispiel, wenn Sie eine detailliertere Kontrolle über das Scraping und Herunterladen von Bildern benötigen.
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 )
Apache-Lizenz 2.0