การดาวน์โหลด/การคัดลอกรูปภาพจาก python

ฉันพยายามดาวน์โหลดภาพทั้งหมดจากเว็บไซต์แต่ไม่สามารถทำได้ ฉันจะดาวน์โหลดรูปภาพทั้งหมดจากส่วนเฉพาะของเว็บไซต์และบันทึกลงในไดเร็กทอรีของฉันได้อย่างไร

โค้ดด้านล่างส่งออกรูปภาพทั้งหมดและบันทึกลิงก์รูปภาพไปยังไฟล์ csv แต่ฉันก็ต้องการให้รูปภาพบันทึกในไดเร็กทอรีของฉันด้วย

from urllib.request import Request, urlopen
from bs4 import BeautifulSoup as soup

my_url = 'https://www.newegg.com/Video-Cards-Video-Devices/Category/ID-38?Tpk=graphics%20card'

req = Request(my_url, headers={'User-Agent': 'Mozilla/5.0'})


webpage = urlopen(req).read()
page_soup = soup(webpage, "html.parser")


filename = "abc.csv"
f = open(filename, "w")


headers = "imagelink\n" 
f.write(headers)


snackcrisps = page_soup.findAll("div",{"class":"divCategories divShops-newegg"})
crispitem = snackcrisps[0]


img = crispitem.findAll("div",{"class":"product_image_div productSmall_image_div_lit"})
img1 = img[0]


for img1 in img:

    img2 = img1.findAll('img')
    imageLink = img2[0].get('src')


    print("imageLink: " + imageLink)

    f.write(imageLink + "\n")

f.close()

ฉันจะบันทึกรูปภาพในไดเร็กทอรีในเครื่องของฉันได้อย่างไร? ต้องการความช่วยเหลือ!!

ขอบคุณมาก


person Sushil S    schedule 03.09.2019    source แหล่งที่มา
comment
อาจซ้ำกับ จะดาวน์โหลดรูปภาพจาก BeautifulSoup ได้อย่างไร   -  person HS-nebula    schedule 04.09.2019
comment
มือใหม่เหมือนกันครับ ไม่รู้จะแก้ไขยังไงครับ ใครสามารถแก้ไขปัญหานี้ให้ฉันได้ไหม ขอบคุณ   -  person Sushil S    schedule 04.09.2019


คำตอบ (1)


ฉันใช้คำตอบของโพสต์นี้เพื่อกำหนดคำตอบ

ขั้นแรก คุณต้องสร้าง URL แบบเต็มสำหรับรูปภาพที่คุณต้องการ ซึ่งอาจทำได้ง่ายเพียงแค่เติม "https:" ต่อท้ายลิงก์รูปภาพ หรือไม่เปลี่ยนค่าเลย คุณจะต้องตรวจสอบ (ตรวจสอบโพสต์นี้) วิธีปรับ URL ที่คุณพบตาม ไม่ว่าสิ่งเหล่านั้นจะสัมพันธ์กันหรือสัมบูรณ์ก็ตาม

คุณจะต้องใช้โมดูล requests เพื่อส่งคำขอรูปภาพ

import requests
import shutil

for img1 in img:

    img2 = img1.findAll('img')
    imageLink = img2[0].get('src')
    if not "https:" in imageLink:
        imageLink = "https:" + imageLink

    r = requests.get(imageLink, stream=True)
    if r.response = 200:
        with open("my_file.jpg", 'wb') as f:
            r.raw.decode_content = True
            shutil.copyfileobj(r.raw, f)
person fendall    schedule 03.09.2019