Python: Κατεβάστε όλες τις εικόνες από μια ιστοσελίδα


nc
Δημοσίευση: • Share Article:

@Αυτό το script σε python χρησιμοποιεί τις βιβλιοθήκες selenium και beautifulsoup4 για να κάνει λήψη όλων των φωτογραφιών από μια καθορισμένη ιστοσελίδα.
Εγκατάσταση
1. Αν δεν έχουμε ήδη εγκατεστημένες τις 2 προαναφερθείσες βιβλιοθήκες, τις εγκαθιστούμε με:
pip install selenium beautifulsoup4
2. Αν δεν έχουμε εγκαταστήσει τον chromedriver, ειδικά για την έκδοση του λειτουργικού μας, εγκαθιστούμε την εφαρμογή από εδώ (μπορείτε να διαβάσετε περισσότερα για το chromedriver πατώντας εδώ).
3. Πρέπει να εισάγετε τη διαδρομή του chromedriver που ζητά το script.
Ακολουθεί το script. Αφού το αποθηκεύσετε (π.χ. scrap-img.py), μπορείτε να το τρέξετε, σαν οποιοδήποτε script της python.(π.χ. python3 scrap-img.py).


from selenium import webdriver
import requests as rq
import os
from bs4 import BeautifulSoup
import time

# path= E:\web scraping\chromedriver_win32\chromedriver.exe
path = input("Enter Path : ")

url = input("Enter URL : ")

output = "output"


def get_url(path, url):
    driver = webdriver.Chrome(executable_path=r"{}".format(path))
    driver.get(url)
    print("loading.....")
    res = driver.execute_script("return document.documentElement.outerHTML")

    return res


def get_img_links(res):
    soup = BeautifulSoup(res, "lxml")
    imglinks = soup.find_all("img", src=True)
    return imglinks


def download_img(img_link, index):
    try:
        extensions = [".jpeg", ".jpg", ".png", ".gif"]
        extension = ".jpg"
        for exe in extensions:
            if img_link.find(exe) > 0:
                extension = exe
                break

        img_data = rq.get(img_link).content
        with open(output + "\\" + str(index + 1) + extension, "wb+") as f:
            f.write(img_data)
        
        f.close()
    except Exception:
        pass


result = get_url(path, url)
time.sleep(60)
img_links = get_img_links(result)
if not os.path.isdir(output):
    os.mkdir(output)

for index, img_link in enumerate(img_links):
    img_link = img_link["src"]
    print("Downloading...")
    if img_link:
        download_img(img_link, index)
print("Download Complete!!")

Foreach programming

Εγγραφείτε για να βλέπετε τα εξειδικευμένα άρθρα.