使用 Python 抓取和下载 Google 图像
已发表: 2023-01-02Web 抓取的日益普及大大增加了它的使用范围。 如今,许多人工智能应用程序定期向网络抓取数据集提供最新数据。 从目标网站到人工智能应用程序的数据集,数据有规律且不间断地流动。
相关文章:人工智能对客户成功未来的影响
图像处理是人工智能应用中最热门的领域之一。 图像处理是计算机科学的一个领域,专注于使计算机能够识别和理解图像和视频中的物体和人物。 与其他类型的人工智能一样,图像处理旨在执行和自动化复制人类能力的任务。 在这种情况下,图像处理试图同时复制人们的观看方式和他们理解所见内容的方式。
在许多领域,尤其是在图像处理项目中,算法开发和减少误差所需的数据都是通过网络抓取获得的。 在本文中,我们将开发一个在图像处理项目中经常使用的应用程序。 我们将使用 Python 编程语言抓取和下载 Google Images。 让我们开始吧。
项目设置
首先,让我们在桌面上打开一个文件夹。 让我们在此文件路径中打开一个终端,并通过运行以下命令安装必要的库。
pip 安装请求 bs4 |
安装必要的库后,让我们在文件夹中创建一个名为“index.py”的文件。
代码
让我们将以下代码粘贴到我们创建的“index.py”文件中。
导入请求、re、json、urllib.request 从 bs4 导入 BeautifulSoupheaders = { “User-Agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like 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 = requests.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) removed_matched_thumbnails = remove_matched_get_thumbnails(matched_google_image_data=matched_image_data) matched_resolution_images = re.findall(r”(?:'|,),\[\”(https:|http.*?)\”,\d+,\d+\]”, removed_matched_thumbnails) full_resolution_images = get_resolution_image(匹配分辨率图像=匹配分辨率图像) 对于枚举(zip(soup.select(target_image_path),full_resolution_images),start = 1)中的索引,(image_data,image_link): append_image_to_list(图像数据=图像数据,图像链接=图像链接) print(f'{index}.图片开始下载') 下载图片(图片链接=图片链接,索引=索引) print(f'{index}. 图片下载成功') 打印(f'抓取和下载的图像:{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(图像数据,图像链接): def download_image(图像链接,索引): scrape_and_download_google_images() |
如果我们检查代码,让我们首先看一下具有静态值的字段。 以下字段定义为静态值。 我们使用 queryParams 变量指定要抓取和下载的图像的名称和属性。
另请阅读:ChatGPT – 对企业的影响
标题= { “User-Agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like 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” targeted_image_base_html_path = “.VFACy.kGQAp.sMi44c.lNHeqe.WGvvNb” html = requests.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) removed_matched_thumbnails = remove_matched_get_thumbnails(matched_google_image_data=matched_image_data) matched_resolution_images = re.findall(r”(?:'|,),\[\”(https:|http.*?)\”,\d+,\d+\]”, removed_matched_thumbnails) full_resolution_images = get_resolution_image(匹配分辨率图像=匹配分辨率图像) 对于枚举(zip(soup.select(target_image_path),full_resolution_images),start = 1)中的索引,(image_data,image_link): append_image_to_list(图像数据=图像数据,图像链接=图像链接) print(f'{index}.图片开始下载') 下载图片(图片链接=图片链接,索引=索引) print(f'{index}. 图片下载成功') 打印(f'抓取和下载的图像:{google_images}') |
将抓取的图像下载到文件夹是在 download_image(image_link=image_link, index=index) 方法中完成的。 用这种方法抓取的图像保存在我们之前添加到项目文件位置的“Scraped_Images”中。
注意:在运行应用程序之前,在项目结构中创建“Scraped_Images”文件夹
def download_image(图像链接,索引): opener=urllib.request.build_opener() opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36')] urllib.request.install_opener(开瓶器) urllib.request.urlretrieve(image_link, f'Scraped_Images/Image_{index}.jpg') |
另请阅读:区块链即服务对企业的应用和好处是什么?
跑步
要运行该应用程序,让我们在文件位置打开一个终端并运行以下命令。
蟒蛇指数.py |
应用运行后,应用的控制台打印如下信息。
1.镜像开始下载 1. 图片下载成功 2. 图片开始下载 2. 图片下载成功 3.镜像开始下载 3. 图片下载成功 4.图片开始下载 4. 图片下载成功 5.图片开始下载 5.图片下载成功 6.图片开始下载 6.图片下载成功 7. 图片开始下载 7. 图片下载成功 […] 48.图片开始下载 48. image successfully downloaded抓取和下载的图片: [ { 'image_title': '漫威漫画 – 维基百科', 'image_source_link': 'https://en.wikipedia.org/wiki/Marvel_Comics', 'image_link':'https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Marvel_Logo.svg/1200px-Marvel_Logo.svg.png' }, { 'image_title': '漫威宇宙 – 维基百科', 'image_source_link': 'https://en.wikipedia.org/wiki/Marvel_Universe', 'image_link': 'https://upload.wikimedia.org/wikipedia/en/1/19/Marvel_Universe_%28Civil_War%29.jpg' }, { 'image_title':'Marvel.com | 漫威电影、角色、漫画、电视的官方网站', 'image_source_link': 'https://www.marvel.com/', 'image_link': 'https://i.annihil.us/u/prod/marvel/images/OpenGraph-TW-1200×630.jpg' }, { 'image_title': '漫威娱乐 - YouTube', 'image_source_link': 'https://www.youtube.com/c/marvel', 'image_link': 'https://yt3.ggpht.com/fGvQjp1vAT1R4bAKTFLaSbdsfdYFDwAzVjeRVQeikH22bvHWsGULZdwIkpZXktcXZc5gFJuA3w=s900-ck-c0x00ffffff-no-rj' }, { 'image_title': '漫威电影和节目 | 迪士尼+', 'image_source_link': 'https://www.disneyplus.com/brand/marvel', 'image_link':'https://prod-ripcut-delivery.disney-plus.net/v1/variant/disney/DA2E198288BFCA56AB53340211B38DE7134E40E4521EDCAFE6FFB8CD69250DE9/scale?width=2880&aspectRatio=1.78&format=jpeg' }, { 'image_title': 'Marvel 新手入门 | 有线', 'image_source_link': 'https://www.wired.com/2012/03/an-intro-to-marvel-for-newbies/', 'image_link':'https://media.wired.com/photos/5955ceabcbd9b77a41915cf6/master/pass/marvel-characters.jpg' }, { 'image_title': '如何按故事顺序观看每部漫威电影 - 游行:娱乐、食谱、健康、生活、假期', 'image_source_link': 'https://parade.com/1009863/alexandra-hurtado/marvel-movies-order/', 'image_link': 'https://parade.com/.image/t_share/MTkwNTgxMjkxNjk3NDQ4ODI4/marveldisney.jpg' }, { 'image_title': '漫威漫画 | 历史、人物、事实和电影 | 大英百科全书', 'image_source_link': 'https://www.britannica.com/topic/Marvel-Comics', 'image_link': 'https://cdn.britannica.com/62/182362-050-BD31B42D/Scarlett-Johansson-Black-Widow-Chris-Hemsworth-Thor.jpg' }, { 'image_title': '惊奇队长 (2019) – IMDb', 'image_source_link': 'https://www.imdb.com/title/tt4154664/', 'image_link':'https://m.media-amazon.com/images/M/MV5BMTE0YWFmOTMtYTU2ZS00ZTIxLWE3OTEtYTNiYzBkZjViZThiXkEyXkFqcGdeQXVyODMzMzQ4OTI@._V1_FMjpg_UX1000_.jpg' }, […] ] |
让我们看看“Scraped_Images”文件来检查下载的图像。
另请阅读:公司类型以及如何整合您的初创企业
结论
我们使用 python 抓取和下载了出于某种原因需要的 Google 图像。 如果您想在不编写任何代码的情况下从 Google 获取所需的图像,请探索 Zenserp API。 这是它不断更新的强大而精彩的文档。