นี่คือไลบรารีสำหรับการดึงและดาวน์โหลดรูปภาพจาก Google Images
มันใช้แบบสอบถามอินพุตและอาร์กิวเมนต์เพื่อค้นหาและย้อนกลับวัตถุภาพ ภาพเหล่านี้อาจได้รับการปกป้องภายใต้ลิขสิทธิ์และคุณไม่ควรทำอะไรที่มีโทษกับพวกเขาเช่นใช้เพื่อใช้ในเชิงพาณิชย์ ห้องสมุดนี้ได้รับแรงบันดาลใจจากการโหลดของ google-images-download โดย Hardikvasa แต่เพิ่มคุณภาพชีวิตที่ดีขึ้นสองสามอย่างเช่นความสามารถในการดึง URL ได้เช่นกัน ห้องสมุดนี้จะเป็นไปไม่ได้อย่างไรก็ตามหากไม่มีงานและคนที่ทำงานเพื่อดำเนินการต่อ
มีข้อโต้แย้งที่จำเป็นอย่างหนึ่งและข้อโต้แย้งสองข้อในฟังก์ชั่นหลักทั้งสอง:
| การโต้แย้ง | ประเภท | คำอธิบาย |
|---|---|---|
| คำถาม: | str, รายการ | ทั้งสตริงหรือรายการที่มีคำหลักเพื่อค้นหา หากแบบสอบถามเป็นสตริงมันจะถูกแยกออกเป็นคำหลักที่แตกต่างกันโดยช่องว่าง |
| จำกัด | int | จำนวนภาพที่จะค้นหา ไม่สามารถยิ่งใหญ่กว่า 100 *ค่าเริ่มต้นเป็น 1 * |
| ข้อโต้แย้ง: | คำสั่ง | นี่คือพจนานุกรมที่มีค่าทางเลือกมากมายซึ่งทั้งหมดจะอยู่ที่นี่ พวกเขาแบ่งออกเป็นสองประเภท: การค้นหาอาร์กิวเมนต์ และ ดาวน์โหลดอาร์กิวเมนต์ |
| การโต้แย้ง | ประเภท | คำอธิบาย |
|---|---|---|
| download_format | str | ระบุส่วนขยายไฟล์เพื่อดาวน์โหลดรูปภาพทั้งหมดเป็น ต้องเป็นส่วนขยายไฟล์ภาพที่ถูกต้องที่ PIL รับรู้ *หมายเหตุ: สิ่งนี้ใช้เวลานานกว่ามากด้วยภาพจำนวนมาก* |
| ไดเรกทอรี | str | สิ่งนี้ระบุชื่อไดเรกทอรีเพื่อดาวน์โหลดรูปภาพไป สิ่งนี้จะถูกสร้างขึ้นโดยอัตโนมัติในไดเรกทอรีฟังก์ชั่นที่เรียกว่าเว้นแต่จะมีการระบุไดเรกทอรีแล้วหรือมีการระบุ เส้นทาง แล้ว |
| เส้นทาง | str | สิ่งนี้ระบุเส้นทางเพื่อสร้างไดเรกทอรีดาวน์โหลดใน |
| การหมดเวลา | int ลอย | สิ่งนี้ระบุเวลาสูงสุดที่โปรแกรมจะรอเพื่อดึงภาพเดียวในไม่กี่วินาที |
| verbose | บูล | ตั้งค่าเป็น True เพื่อพิมพ์การอัปเดตเกี่ยวกับความคืบหน้าไปยังคอนโซล |
| การโต้แย้ง | ค่าที่ยอมรับ | คำอธิบาย |
|---|---|---|
| สี | 'Red', 'Orange', 'Yellow', 'Green', 'Teal', 'Blue', 'Purple', 'Pink', 'White', 'Grey', 'Black', 'Brown' | กรองภาพด้วยสีที่โดดเด่น |
| color_type | 'เต็ม', 'Grayscale', 'โปร่งใส' | ตัวกรองภาพตามประเภทสีสีเต็มสีเทาหรือโปร่งใส |
| ใบอนุญาต | 'creative_commons', 'other_licenses' | กรองรูปภาพโดยใบอนุญาตการใช้งาน |
| พิมพ์ | 'face', 'photo', 'clipart', 'lineart', 'gif' | กรองตามประเภทของรูปภาพที่จะค้นหา * อย่าสับสนกับ search_format * |
| เวลา | 'past_day', 'past_week', 'past_month', 'past_year' | พบเฉพาะภาพที่โพสต์ในเวลาที่ระบุ |
| แง่มุม _ratio | 'Tall', 'Square', 'Wide', 'Panoramic' | ระบุอัตราส่วนภาพของภาพ |
| search_format | 'jpg', 'gif', 'png', 'bmp', 'svg', 'webp', 'ico', 'raw' | กรองรูปภาพที่ไม่ใช่รูปแบบที่ระบุ หากคุณต้องการดาวน์โหลดรูปภาพเป็นรูปแบบเฉพาะให้ใช้อาร์กิวเมนต์ 'download_format' แทน |
มีฟังก์ชั่นที่มีอยู่สี่รายการ ดาวน์โหลด url image_objects และ download_image ซึ่งทำงานแตกต่างจากอื่น ๆ :
import GoogleImageScraper
images = GoogleImageScraper ( query , limit , arguments )สิ่งนี้จะดาวน์โหลดรูปภาพตามอาร์กิวเมนต์ ค่าที่ส่งคืนจะเป็นไปตามรูปแบบนี้:
{ 'images' : [ images ], 'errors' : Number of Errors }แต่ละภาพในรายการรูปภาพจะเป็นไปตามรูปแบบเฉพาะเช่นกัน:
{ 'path' : Image Path , 'url' : Image Url } import GoogleImageScraper
urls = GoogleImageScraper . urls ( query , limit , arguments )ฟังก์ชั่นนี้เพียงส่งคืนรายการ URL รูปภาพจากคำค้นหา
ฟังก์ชั่นนี้มีช่องว่างมากกว่าเล็กน้อย แต่อาจเป็นประโยชน์สำหรับบางคน แทนที่จะส่งคืนรายการ URL ภาพเช่นเดียวกับฟังก์ชั่น URL จะส่งคืนรายการวัตถุภาพที่มีข้อมูลที่เป็นประโยชน์โครงสร้างเช่น SO:
{ 'url' : Image url , 'thumbnail' : Url of image thumbnail , 'source_url' : The webpage the image was found on , 'source' : The base url of the source }การใช้งานคล้ายกับฟังก์ชั่นก่อนหน้า:
import GoogleImageScraper
image_objects = GoogleImageScraper . image_objects ( query , limit , arguments )ใช้ฟังก์ชั่นนี้เพื่อดาวน์โหลดภาพผ่าน URL ฟังก์ชั่นนี้แตกต่างจากส่วนที่เหลือซึ่งใช้อาร์กิวเมนต์อินพุตที่แตกต่างกันตามที่ระบุไว้ด้านล่าง:
| การโต้แย้ง | ประเภท | คำอธิบาย |
|---|---|---|
| url | str | URL ในการดาวน์โหลดภาพจาก *ที่จำเป็น* |
| ชื่อ | str | ชื่อของไฟล์ อย่ารวมนามสกุลไฟล์ *ที่จำเป็น* |
| เส้นทาง | str | เส้นทางที่จะดาวน์โหลดภาพไป |
| download_format | str | รูปแบบการดาวน์โหลดภาพ ใช้เวลานานขึ้น |
| เขียนทับ | บูล | ไม่ว่าจะเขียนทับไฟล์ด้วยชื่อเดียวกัน ค่าเริ่มต้นเป็น True เพิ่ม FileExistsError หาก False และไฟล์มีอยู่ |
มีโอกาสที่คุณจะไม่ถึงจำนวนภาพที่ระบุในอาร์กิวเมนต์ จำกัด สิ่งนี้เกิดขึ้นเมื่อมีข้อผิดพลาดในการดาวน์โหลดรูปภาพไม่ว่าจะไม่อยู่ในรูปแบบภาพหรือเวลาร้องขอเวลาออกก็สามารถเกิดขึ้นได้ เมื่อดาวน์โหลดภาพจำนวนมากสิ่งนี้อาจทำให้คุณไม่สามารถถึงขีด จำกัด ของคุณได้ รายการ 'ข้อผิดพลาด' ในพจนานุกรมที่ส่งคืนจากการดาวน์โหลดเป็นวิธีการติดตามสิ่งนั้น ตัวอย่างเช่นหาก ขีด จำกัด ของคุณคือ 100 และ 3 ภาพโยนข้อผิดพลาดคุณจะได้รับภาพ 97 ภาพและรายการ 'ข้อผิดพลาด' จะเป็น 3 ตอนนี้ถ้า ขีด จำกัด ของ คุณคือ 20 อย่างไรก็ตามและ 3 ภาพโยนข้อผิด พลาด คุณจะยังคงได้รับ 20 รายการกลับมา
| ข้อผิดพลาด | คำอธิบาย |
|---|---|
LimitError | ยกขึ้นเมื่ออาร์กิวเมนต์ขีด จำกัด สูงกว่า 100 หรือไม่เป็นประเภทที่เหมาะสม |
ArgumentError | เพิ่มขึ้นเมื่อมีการกำหนดค่าที่ไม่ถูกต้องสำหรับการโต้แย้ง |
QueryError | ยกขึ้นหากไม่มีแบบสอบถามหรือแบบสอบถามไม่ใช่ประเภทที่เหมาะสม |
UnpackError | ยกขึ้นหากไม่พบภาพในหน้า |
DownloadError | พิเศษสำหรับฟังก์ชั่น download_image ยกขึ้นหากภาพไม่สามารถดาวน์โหลดได้ |
รวมสิ่งเหล่านี้เช่นนี้:
from GoogleImageScraper . errors import < error >ตัวอย่างจริงสองสามรายการอยู่ที่นี่:
import GoogleImageScraper
urls = GoogleImageScraper . urls ( query = 'cats' , limit = 10 , arguments = { 'color' : 'black' })ผลลัพธ์:
[ 'https://www.rd.com/wp-content/uploads/2021/01/GettyImages-1175550351.jpg' ,
'https://www.history.com/.image/ar_4:3%2Cc_fill%2Ccs_srgb%2Cfl_progressive%2Cq_auto:good%2Cw_1200/MTg0NTEzNzgyNTMyNDE2OTk5/black-cat-gettyimages-901574784.jpg' ,
'https://www.thesprucepets.com/thmb/kF3_dQW_JT1ClMQDlISxq3BgeT4=/6843x5132/smart/filters:no_upscale()/facts-about-black-cats-554102-hero-7281a22d75584d448290c359780c2ead.jpg' ,
'https://i.guim.co.uk/img/media/c5e73ed8e8325d7e79babf8f1ebbd9adc0d95409/2_5_1754_1053/master/1754.jpg?width=465&quality=45&auto=format&fit=max&dpr=2&s=065f279099ded1062688e357b155dc29' ,
'https://cdn.cnn.com/cnnnext/dam/assets/141030105303-kiki-irpt.jpg' ,
'https://imagesvc.meredithcorp.io/v3/mm/image?url=https%3A%2F%2Fstatic.onecms.io%2Fwp-content%2Fuploads%2Fsites%2F34%2F2021%2F09%2F27%2Fblack-cat-kitchen-rug-getty-0921-2000.jpg' ,
'https://www.gannett-cdn.com/presto/2021/10/28/USAT/1bf79c6a-5d88-4e64-b398-c40418a79829-XXX_iStock_000017680551Large.jpg' ,
'https://cdn.sanity.io/images/0vv8moc6/dvm360/f28cc9b680aed62edd018ce47a5cbb96c4f78f3b-4860x3024.jpg' ,
'https://vbspca.com/wp-content/uploads/2019/10/Image-e1570199876255.jpeg' ,
'https://ichef.bbci.co.uk/news/976/cpsprodpb/AECE/production/_99805744_gettyimages-625757214.jpg' ] import GoogleImageScraper
images = GoogleImageScraper . download ( query = 'dogs' , limit = 1 , arguments = { 'color' : 'brown' , 'download_format' : 'png' })ผลลัพธ์:
{ 'images' : [{ 'path' : '<path> \ images \ dogs-0.png' , 'url' : 'https://post.medicalnewstoday.com/wp-content/uploads/sites/3/2020/02/322868_1100-800x825.jpg' }], 'errors' : 0 } import GoogleImageScraper
objects = GoogleImageScraper . image_objects ( query = 'birds' , limit = 1 , arguments = { 'color' : 'yellow' })ผลลัพธ์:
[{ 'thumbnail' : 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQwDI5y3_n2rwFQLZKrBXs5VL_J38zlZVvdZAooD8F8d7lY8ZA9iLEb1-AoBBWpGftpdoc&usqp=CAU' , 'url' : 'https://www.sfvaudubon.org/wp-content/uploads/2020/03/YEWAcrop.jpg' , 'source_url' : 'https://www.sfvaudubon.org/sfv-backyard-bird-identification/' , 'source' : 'sfvaudubon.org' }, { 'thumbnail' : 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR1k5IhGCAPgU468tyPrgkuY9WC3T83zRxzFrTOOUs0OL_kanPG8VPKXV3euijAlzW9AsE&usqp=CAU' , 'url' : 'https://ca.audubon.org/sites/default/files/styles/article_teaser/public/yellowwarbler_peter_latourrette.jpg?itok=PFRtxcGN' , 'source_url' : 'https://ca.audubon.org/birds-0' , 'source' : 'ca.audubon.org' }]