كشط وتنزيل صور Google باستخدام Python
نشرت: 2023-01-02أدى الانتشار المتزايد لكشط الويب إلى زيادة مناطق استخدامه بشكل كبير. تقوم العديد من تطبيقات الذكاء الاصطناعي اليوم بتغذية مجموعات بيانات كشط الويب ببيانات محدثة على أساس منتظم. هناك تدفق منتظم وغير متقطع للبيانات من مواقع الويب المستهدفة إلى مجموعات بيانات تطبيقات الذكاء الاصطناعي.
الوظائف ذات الصلة: تأثير الذكاء الاصطناعي على مستقبل نجاح العملاء
تعد معالجة الصور من أكثر المجالات شيوعًا في تطبيقات الذكاء الاصطناعي. معالجة الصور هي أحد مجالات علوم الكمبيوتر التي تركز على تمكين أجهزة الكمبيوتر من تحديد وفهم الأشياء والأشخاص في الصور ومقاطع الفيديو. مثل الأنواع الأخرى من الذكاء الاصطناعي ، تهدف معالجة الصور إلى أداء وأتمتة المهام التي تكرر القدرات البشرية. في هذه الحالة ، تحاول معالجة الصور نسخ الطريقة التي يرى بها الأشخاص والطريقة التي يفهمون بها ما يرونه.
يتم الحصول على البيانات المطلوبة لتطوير الخوارزميات وتقليل هوامش الخطأ في العديد من المجالات ، وخاصة في مشاريع معالجة الصور ، عن طريق تجريف الويب. في هذه المقالة ، سنطور تطبيقًا يستخدم بشكل متكرر في مشاريع معالجة الصور. سنقوم بكشط وتنزيل صور Google باستخدام لغة برمجة Python. اذا هيا بنا نبدأ.
إعداد مشروع
أولاً ، لنفتح مجلدًا على سطح المكتب. لنفتح Terminal في مسار الملف هذا ونثبت المكتبات الضرورية عن طريق تشغيل الأمر أدناه.
طلبات تثبيت النقطة bs4 |
بعد تثبيت المكتبات الضرورية ، دعنا ننشئ ملفًا باسم "index.py" في المجلد.
اقرأ أيضًا: ChatGPT - آثاره على الشركات
الشفرة
دعنا نلصق الأكواد التالية في ملف "index.py" الذي أنشأناه.
طلبات الاستيراد ، re ، json ، urllib.request من bs4 استيراد BeautifulSoup رؤوس = { queryParameters = {“q”: “marvel”، “tbm”: “isch”، “hl”: “en”، “gl”: “us”، “ijn”: “0”} target_image_path = ".isv-r.PNCib.MSM1fd.BUooTd" html = request.get (“https://www.google.com/search”، params = queryParameters، headers = headers، timeout = 30) google_images = [] def scrape_and_download_google_images (): images_data_in_json = convert_image_to_json () matched_image_data = re.findall (r '\ ”b-GRID_STATE0 \” (. *) sideChannel: \ s؟ {}}' ، images_data_in_json) remove_matched_thumbnails = remove_matched_get_thumbnails (matched_google_image_data = matched_image_data) matched_resolution_images = re.findall (r ”(؟: '|،)، \ [\” (https: | http. *؟) \ ”، \ d +، \ d + \]”، remove_matched_thumbnails) full_resolution_images = get_resolution_image (matched_resolution_images = matched_resolution_images) للفهرس ، (image_data ، image_link (رابط_الصورة) في التعداد (zip (soup.select (target_image_path) ، full_resolution_images) ، بدء = 1): append_image_to_list (image_data = image_data ، image_link = رابط_الصورة) طباعة (f '{index}. بدأ تنزيل الصورة') download_image (image_link = image_link (رابط_الصورة) ، الفهرس = الفهرس) طباعة (f '{index}. تم تنزيل الصورة بنجاح') طباعة (f'scraped and download images: {google_images} ') def remove_matched_get_thumbnails (matched_google_image_data): def get_resolution_image (matched_resolution_images): def convert_image_to_json (): def append_image_to_list (image_data، image_link (رابط_الصورة)): def download_image (image_link، index): scrape_and_download_google_images () |
إذا فحصنا الرموز ، فلننظر أولاً إلى الحقول ذات القيم الثابتة. يتم تعريف الحقول التالية كقيم ثابتة. نحدد اسم وخصائص الصورة التي نريد كشطها وتنزيلها باستخدام متغير queryParams.
رؤوس = { "User-Agent": "Mozilla / 5.0 (Windows NT 10.0؛ Win64؛ x64) AppleWebKit / 537.36 (KHTML ، مثل Gecko) Chrome / 103.0.5060.114 Safari / 537.36" } queryParameters = {“q”: “marvel”، “tbm”: “isch”، “hl”: “en”، “gl”: “us”، “ijn”: “0”} target_image_path = ".isv-r.PNCib.MSM1fd.BUooTd" html = request.get (“https://www.google.com/search”، params = queryParameters، headers = headers، timeout = 30) google_images = [] |
طريقة scrape_and_download_google_images () هي المكان الذي يبدأ منه التدفق. يتم كشط الصور المستهدفة ثم تنزيلها إلى المجلد الذي حددناه.
def scrape_and_download_google_images ():![]() images_data_in_json = convert_image_to_json () matched_image_data = re.findall (r '\ ”b-GRID_STATE0 \” (. *) sideChannel: \ s؟ {}}' ، images_data_in_json) remove_matched_thumbnails = remove_matched_get_thumbnails (matched_google_image_data = matched_image_data) matched_resolution_images = re.findall (r ”(؟: '|،)، \ [\” (https: | http. *؟) \ ”، \ d +، \ d + \]”، remove_matched_thumbnails) full_resolution_images = get_resolution_image (matched_resolution_images = matched_resolution_images) للفهرس ، (image_data ، image_link (رابط_الصورة) في التعداد (zip (soup.select (target_image_path) ، full_resolution_images) ، بدء = 1): append_image_to_list (image_data = image_data ، image_link = رابط_الصورة) طباعة (f '{index}. بدأ تنزيل الصورة') download_image (image_link = image_link (رابط_الصورة) ، الفهرس = الفهرس) طباعة (f '{index}. تم تنزيل الصورة بنجاح') طباعة (f'scraped and download images: {google_images} ') |
يتم تنزيل الصورة المقطوعة إلى المجلد بطريقة download_image (image_link = image_link، index = index). يتم حفظ الصورة التي تم كشطها بهذه الطريقة في "Scraped_Images" التي أضفناها مسبقًا إلى موقع ملف المشروع.
ملاحظة: قم بإنشاء مجلد "Scraped_Images" في هيكل المشروع قبل تشغيل التطبيق
def download_image (image_link، index): فتاحة = urllib.request.build_opener () opener.addheaders = [('User-Agent'، 'Mozilla / 5.0 (Windows NT 10.0؛ Win64؛ x64) AppleWebKit / 537.36 (KHTML ، مثل Gecko) Chrome / 101.0.4951.54 Safari / 537.36 ′)] urllib.request.install_opener (فتاحة) urllib.request.urlretrieve (image_link، f'Scraped_Images / Image_ {index} .jpg ') |
اقرأ أيضًا: ما هي تطبيقات وفوائد Blockchain كخدمة للشركات؟
يركض
لتشغيل التطبيق ، دعنا نفتح Terminal في موقع الملف وقم بتشغيل الأمر التالي.
فهرس بيثون |
بعد تشغيل التطبيق ، تتم طباعة المعلومات التالية على وحدة التحكم الخاصة بالتطبيق.
1. بدأ تنزيل الصورة 1. تم تنزيل الصورة بنجاح 2. بدأ تحميل الصورة 2. تم تنزيل الصورة بنجاح 3. بدأ تنزيل الصورة 3. تم تنزيل الصورة بنجاح 4. بدأ تحميل الصورة 4. تم تنزيل الصورة بنجاح 5. بدأ تنزيل الصورة 5. تم تنزيل الصورة بنجاح 6. بدأ تحميل الصورة 6. تم تنزيل الصورة بنجاح 7. بدأ تنزيل الصورة 7. تم تنزيل الصورة بنجاح [...] 48. بدأ تحميل الصورة 48. تم تنزيل الصورة بنجاح كشط وتحميل الصور: |
لنلق نظرة على ملف "Scraped_Images" للتحقق من الصور التي تم تنزيلها.
اقرأ أيضًا: أنواع الشركات وكيفية دمج شركتك الناشئة
استنتاج
لقد قمنا بإزالة وتنزيل صور Google ، والتي كانت مطلوبة لسبب ما ، باستخدام Python. إذا كنت ترغب في الحصول على الصور التي تحتاجها من Google دون كتابة أي كود ، فاستكشف Zenserp API. ها هي وثائقها القوية والرائعة التي يتم تحديثها باستمرار.