هذه مكتبة لاسترداد وتنزيل الصور من صور Google.
يستخدم استعلام الإدخال والوسائط للبحث وإعادة محاكمة كائنات الصورة. قد تكون هذه الصور محمية تحت حقوق الطبع والنشر ، ويجب ألا تفعل أي شيء يعاقب عليها ، مثل استخدامها للاستخدام التجاري. هذه المكتبة مستوحاة من google-images-download بواسطة Hardikvasa ، ولكنها تضيف بعضًا من تحسينات جودة الحياة ، مثل القدرة على استرداد عناوين URL أيضًا. ومع ذلك ، لن تكون هذه المكتبة ممكنة بدون عملهم ، والأشخاص الذين يعملون على مواصلة ذلك.
هناك حجة مطلوبة واحدة وحجزتين في كلتا الوظيفتين الرئيسيتين:
| دعوى | الأنواع | وصف |
|---|---|---|
| استفسار: | Str ، قائمة | إما سلسلة أو قائمة تحتوي على الكلمات الرئيسية للبحث عنها. إذا كان الاستعلام عبارة عن سلسلة ، فسيتم فصله إلى كلمات رئيسية مختلفة بواسطة المسافات. |
| حد | int | كمية الصور للبحث عنها. لا يمكن أن يكون أكبر ثم 100. *الافتراضات إلى 1 * |
| الحجج: | التقليل | هذا هو القاموس الذي يحتوي على العديد من القيم الاختيارية ، وكلها سيتم سردها هنا. يتم تقسيمها إلى فئتين: حجج البحث وتنزيل الحجج |
| دعوى | الأنواع | وصف |
|---|---|---|
| Download_format | شارع | يحدد امتداد ملف لتنزيل جميع الصور AS. يجب أن يكون تمديد ملف صورة صالح معترف به بواسطة PIL . *ملاحظة: هذا يستغرق وقتًا أطول بكثير مع كميات كبيرة من الصور* |
| دليل | شارع | هذا يحدد اسم الدليل لتنزيل الصور إلى. سيتم إنشاء هذا تلقائيًا في الدليل ، يتم استدعاء الوظيفة ، ما لم يكن الدليل موجودًا بالفعل أو تم تحديد المسار . |
| طريق | شارع | هذا يحدد المسار لإنشاء دليل التنزيل في. |
| نفذ الوقت | int تعويم | هذا يحدد الحد الأقصى للوقت الذي سينتظر فيه البرنامج لاسترداد صورة واحدة في ثوان. |
| مطول | بول | ضبط على True من أجل طباعة التحديثات على التقدم إلى وحدة التحكم. |
| دعوى | القيم المقبولة | وصف |
|---|---|---|
| لون | "أحمر" ، "برتقالي" ، "أصفر" ، "أخضر" ، "تيل" ، "أزرق" ، "أرجواني" ، "وردي" ، "أبيض" ، "رمادي" ، "أسود" ، "براون" | تصفية الصور من اللون المهيمن. |
| color_type | "Full" ، "Grayscale" ، "شفاف" | تصفية الصور حسب نوع اللون أو اللون الكامل أو رمادي أو شفاف. |
| رخصة | "creative_commons" ، "other_licenses" | تصفية الصور بواسطة ترخيص الاستخدام. |
| يكتب | 'Face' ، 'Photo' ، 'clipart' ، 'lineart' ، 'GIF' | المرشحات حسب نوع الصور للبحث عنها. * لا ينبغي الخلط بينه وبين البحث _format * |
| وقت | 'past_day' ، 'past_week' ، 'past_month' ، 'past_year' | يجد فقط الصور المنشورة في الوقت المحدد. |
| Side_ratio | "طويل القامة" ، "مربع" ، "عريض" ، "بانورامي" | يحدد نسبة العرض إلى الارتفاع للصور. |
| 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 الخاصة بـ Image كما هو الحال مع وظيفة URLS ، فإنه يعيد قائمة كائنات الصورة التي تحتوي على بيانات مفيدة ، منظمة على النحو التالي:
{ '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 | شارع | عنوان URL لتنزيل الصورة من. *مطلوب* |
| اسم | شارع | اسم الملف. لا تتضمن تمديد الملف. *مطلوب* |
| طريق | شارع | طريق لتنزيل الصورة إلى. |
| Download_format | شارع | التنسيق لتنزيل الصورة فيه. يستغرق بعض الوقت لفترة أطول |
| الكتابة فوق | بول | ما إذا كان لكسر الملفات مع نفس الاسم. الافتراضات إلى True . يرفع FileExistsError إذا كان False ووجد الملف. |
هناك فرصة لعدم الوصول إلى عدد الصور المحددة في وسيطة الحد . يحدث هذا عندما يكون هناك خطأ في تنزيل صورة ، سواء لم تكن بتنسيق صورة ، أو في أوقات الطلب ، يمكن أن يحدث. عند تنزيل كمية كبيرة من الصور ، قد يتسبب ذلك في عدم الوصول إلى الحد الخاص بك. عنصر "الأخطاء" في القاموس الذي تم إرجاعه من التنزيلات هو طريقتك لتتبع ذلك. على سبيل المثال ، إذا كان الحد الأقصى الخاص بك هو 100 ، و 3 صور ألقيت أخطاء ، فسوف تحصل على 97 صورة مرة أخرى ، وسيكون عنصر "الأخطاء" 3. الآن ، إذا كان الحد الأقصى الخاص بك هو 20 ، و 3 صور ألقيت أخطاء ، فستظل تحصل على 20 عنصرًا ، وبالتالي فإن العنصر "الأخطاء" سيكون محدودًا .
| خطأ | وصف |
|---|---|
LimitError | أثير عندما تكون وسيطة الحد أعلى من 100 أو لا النوع المناسب. |
ArgumentError | يتم رفعها عندما يتم إعطاء قيمة غير صالحة للوسيطة |
QueryError | أثيرت إذا لم يكن هناك استعلام أو أن الاستعلام ليس هو النوع المناسب |
UnpackError | أثيرت إذا لم يتم العثور على صور على الصفحة. |
DownloadError | حصريًا لوظيفة التنزيل . أثيرت إذا فشلت الصورة في التنزيل. |
قم بتضمين هذه مثل SO:
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' }]