📜  如何使用 python 下载多个 googel 图像(1)

📅  最后修改于: 2023-12-03 14:52:01.291000             🧑  作者: Mango

如何使用 Python 下载多个 Google 图像

如果你需要下载多个 Google 图像,Python 是个很好的选择。Python 拥有很多强大的库可以让你开发 Web 应用程序,其中一个最流行的就是 requests。

使用 requests 库可以轻松地从互联网上访问和下载数据。在这篇文章中,我们将使用 Python 和 requests 库来下载多张 Google 图像。

步骤 1: 安装 requests 库

在下载多张 Google 图像之前,首先需要安装 requests 库。如果你使用的是 Python 3.x,可以使用以下命令安装:

pip3 install requests
步骤 2: 导入必要的库
import requests
import os
from bs4 import BeautifulSoup
  • requests:用于从 Web 上下载数据的 Python 库。
  • os:Python 标准库,用于文件操作。
  • BeautifulSoup:用于解析 HTML 和 XML 网页的 Python 库。
步骤 3: 获取 Google 图像搜索的 URL

在你可以下载 Google 图像之前,你需要访问 Google 图像搜索页面并解析它。以下代码将使用 requests 库和 BeautifulSoup 来获取 Google 图像搜索的 URL:

search = "cat"  # 搜索关键字
url = f"https://www.google.com/search?q={search}&tbm=isch"
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"}
soup = BeautifulSoup(requests.get(url, headers=header).content, "html.parser")
  • search:你要搜索的关键字。
  • url:Google 图像搜索页面的 URL。
  • header:伪装成浏览器的 User-Agent,以便 Google 不会阻止你的请求。
  • soup:使用 BeautifulSoup 解析 Google 图像搜索页面。
步骤 4: 解析图片 URL

以下代码将从 Google 图像搜索页面中解析出图片 URL:

img_url_list = []
for img in soup.find_all("img"):
    img_url = img.attrs.get("src")
    if img_url and "https" in img_url:
        img_url_list.append(img_url)
  • img_url_list:用于存储所有图片 URL 的列表。
  • soup.find_all("img"):用于查找 Google 图像搜索页面中的所有图片。
  • img.attrs.get("src"):用于获取图片的 URL。
步骤 5: 下载图片

现在,我们已经获取了 Google 图像搜索页面上的所有图片 URL,以下代码将使用 requests 库下载这些图片到本地:

directory = "./images"  # 存储图片的目录

if not os.path.exists(directory):
    os.makedirs(directory)

for i, img_url in enumerate(img_url_list):
    response = requests.get(img_url)

    with open(f"{directory}/{search}_{i + 1}.jpg", "wb") as f:
        f.write(response.content)
  • directory:用于存储图片的目录。
  • os.makedirs(directory):如果目录不存在,创建一个目录。
  • enumerate(img_url_list):用于遍历 img_url_list 中的所有图片 URL。
  • response.content:用于获取图片的二进制内容。
完整代码
import requests
import os
from bs4 import BeautifulSoup

search = "cat"  # 搜索关键字
url = f"https://www.google.com/search?q={search}&tbm=isch"
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"}
soup = BeautifulSoup(requests.get(url, headers=header).content, "html.parser")

img_url_list = []
for img in soup.find_all("img"):
    img_url = img.attrs.get("src")
    if img_url and "https" in img_url:
        img_url_list.append(img_url)

directory = "./images"  # 存储图片的目录

if not os.path.exists(directory):
    os.makedirs(directory)

for i, img_url in enumerate(img_url_list):
    response = requests.get(img_url)

    with open(f"{directory}/{search}_{i + 1}.jpg", "wb") as f:
        f.write(response.content)
总结

现在你已经知道了如何使用 Python 来下载多张 Google 图像。使用这篇文章中的代码片段,你可以轻松地访问和下载数据,并将其保存到本地机器中。