1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

[Python] Python Script Change

Discussão em 'Python' iniciado por Stack, Agosto 12, 2025.

  1. Stack

    Stack Membro Participativo

    This code currently numbers the images it downloads in order. I want to change this and save the product with the name it searches for when downloading. Can you help?

    import os import shutil import fitz # PyMuPDF from icrawler.builtin import BingImageCrawler from PIL import Image import io

    # Ayarlar
    input_pdf = "products.pdf" # PDF dosyası
    output_dir = "images" # Görselleri kaydetmek için klasör
    max_images = 1 # Her ürün için kaç resim indirilecek

    # Kayıt klasörünü oluştur
    os.makedirs(output_dir, exist_ok=True)

    # PDF'den görselleri çıkar
    def extract_images_from_pdf(pdf_path):
    doc = fitz.open(pdf_path)
    images = []

    for page_num in range(len(doc)):
    page = doc.load_page(page_num) # Sayfayı yükle
    img_list = page.get_images(full=True) # Sayfadaki tüm görselleri al

    for img_index, img in enumerate(img_list):
    xref = img[0] # Görselin XRef numarasını al
    base_image = doc.extract_image(xref) # Görseli çıkar
    image_bytes = base_image["image"] # Görselin byte verisini al
    images.append(image_bytes)

    return images

    # Görseli internetten indir
    def download_image(search_query):
    print(f"[+] Aranıyor: {search_query}")
    bing_crawler = BingImageCrawler(storage={'root_dir': output_dir})
    bing_crawler.crawl(
    keyword=search_query,
    max_num=max_images,
    filters={'size': 'large', 'license': 'creativecommons'}
    )

    # PDF'den görselleri çıkart
    images = extract_images_from_pdf(input_pdf)

    # İndirilen görselleri kaydet ve numaralandır
    def save_images_from_search(query):
    search_query = f"{query} filigransız" # Filigransız görsel araması için ekleme
    download_image(search_query)

    image_count = 1 # Görselleri sırasıyla numaralandırmak için sayaç

    # PDF'deki görselleri indir
    for img_data in images:
    # Görseli internetten arayıp indir
    save_images_from_search("product_name") # Buraya ürün adı veya tanım eklenebilir
    # Burada görsel indirildikten sonra ismini değiştirmemek için orijinal adını kullanacağız.

    # Görseli indirildikten sonra dosya adını değiştirmemek için, indirilen görselin orijinal adını kullanmak gerekir
    # Burada, icrawler genellikle resimleri 'image0.jpg', 'image1.jpg' gibi isimlerle kaydeder.
    # Bu yüzden bu dosya adlarını orijinal isimle değiştirebiliriz (örneğin: "product_name.png" gibi).

    # **Varsayılan indirilen dosya adını almak ve yeniden adlandırmak için:**
    downloaded_file_path = os.path.join(output_dir, "images", "downloaded_image.png") # Crawler tarafından indirilen dosya
    new_name = f"{image_count}.png" # Orijinal ismi kullanmak için sadece yeni bir isim veririz
    new_path = os.path.join(output_dir, new_name)

    if os.path.exists(downloaded_file_path):
    os.rename(downloaded_file_path, new_path) # Görseli orijinal adıyla yeniden adlandır
    image_count += 1

    print("✅ Tüm indirmeler tamamlandı!")

    Continue reading...

Compartilhe esta Página