使用 Python 从谷歌搜索结果中抓取图像

本文依赖于 Fabian Bosler 编写的代码:

用 Python 抓取图像
我只是修改了 Bosler 的代码,以便更轻松地为多个搜索词提取图像。

完整代码可以在该系列的 Github 存储库中找到:

deep_arcane -- scrap.py
魔术符号
正如我在之前的文章中提到的,我需要大量的魔法符号图像来训练深度卷积生成对抗网络 (DCGAN)。幸运的是,我很早就找到了 Bosler 的文章。

为了获取我的图像,我使用 Chrome 浏览器、Chromedriver、Selenium 和 Python 脚本从 Google 的图像搜索中慢慢抓取图像。抓取被限制在接近人类的速度,但允许自动收集大量图像。



关于这个过程,我会附和 Bosler,我绝不是法律专家。我不是律师,我所说的任何内容都不应被视为法律建议。我只是互联网上的黑客。 然而,据我所知,抓取 SERP(搜索引擎结果页面)并不违法,至少不是供个人使用。但是使用 Google 的图像搜索自动抓取图像违反了他们的服务条款 ( ToS)。复制此项目需要您自担风险。我知道当我调整我的脚本以更快地搜索时谷歌禁止了我的 IP。我很高兴这是暂时的。

Bosler 的修改脚本
该脚本会自动搜索图像并收集其基础 URL。搜索后,它使用 Pythonrequests库将所有图像下载到以搜索词命名的文件夹中。

以下是我对 Bosler 的原始脚本所做的修改:

添加了搜索词循环。这允许脚本继续运行超过一个搜索词。
脚本在遇到“显示更多结果”时卡住了,我已经解决了这个问题。
结果保存在与搜索项关联的目录中。如果脚本被中断并重新运行,它会查看首先创建的目录,并将这些目录从搜索项中删除。
我添加了超时功能;感谢Stack Overflow上的一位用户。
我参数化了每个搜索词要查找的图像数量、睡眠时间和超时。
代码:库
您将需要安装 Chromedriver 和 Selenium——这在原始文章中有很好的解释。

用 Python 抓取图像
您还需要安装Pillow——一个用于管理图像的 Python 库。

你可以安装它:

pip install pillow


安装所有需要的库后,下面的代码块应该可以正确执行:

import os
import time

import io
import hashlib
import signal
from glob import glob
import requests

from PIL import Image
from selenium import webdriver


如果您有任何问题,请重新阅读原始文章设置说明或随时在下面的评论中提问。

代码:参数
我在脚本中添加了一些参数以方便使用。

number_of_images = 400
GET_IMAGE_TIMEOUT = 2
SLEEP_BETWEEN_INTERACTIONS = 0.1
SLEEP_BEFORE_M
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值