ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

谷歌图片采集教程:Python批量抓取图片URL和来源页面(附代码)

谷歌图片采集教程:Python批量抓取图片URL和来源页面(附代码) 做素材采集、电商选品、竞品图片监控的朋友应该都遇到过这种需求按关键词把谷歌图片结果批量抓下来——拿到图片 URL、来源页面、所属网站。这篇教大家用谷歌图片搜索 API 自动化完成返回的是结构化 JSON不需要解析网页代码可直接复制。图片采集要拿什么数据谷歌图片结果页每条结果包含图片 URL原图地址image_url缩略图 URL小图地址thumbnail_url标题图片的标题或 alt 文本来源页面图片所在网页的链接link来源域名所属网站domain拿到这五样素材库、选品表格、竞品图库都能建起来。接口与准备我用的接口是 SerpBase官网 serpbase.dev的/google/images端点POST JSON X-API-Key认证。注册送 100 次免费搜索不需要绑卡够把流程跑通。一个注意点图片端点每次扣 2 credits比网页搜索贵一倍批量前先小样本验证再放大。第一步抓一个关键词的图片核心接口POST https://api.serpbase.dev/google/imagesimportrequests API_KEY在这里填你的KeyURLhttps://api.serpbase.dev/google/imagesresprequests.post(URL,headers{Content-Type:application/json,X-API-Key:API_KEY},json{q:iphone 15 pro blue,hl:en,gl:us,page:1},timeout30,)dataresp.json()forimgindata.get(images,[])[:10]:print(img.get(rank),|,img.get(title))print( 图片:,img.get(image_url))print( 来源页:,img.get(link))print( 域名:,img.get(domain))print()返回的images数组里每条结果带image_url、thumbnail_url、title、link、domain、rank。一次请求图片列表就齐了。第二步批量下载图片只存元数据更省心图片 URL 直接请求下载会慢、会占带宽。更稳妥的做法是先只存元数据URL、来源、标题需要时再按需下载importrequestsimportcsv API_KEY在这里填你的KeyURLhttps://api.serpbase.dev/google/imagesdeffetch_images(keyword,hlen,glus):resprequests.post(URL,headers{Content-Type:application/json,X-API-Key:API_KEY},json{q:keyword,hl:hl,gl:gl},timeout30,)returnresp.json().get(images,[])# 多关键词批量keywords[iphone 15 pro blue,macbook air,apple watch]rows[]forkwinkeywords:forimginfetch_images(kw):rows.append([kw,img.get(title,),img.get(image_url,),img.get(link,),img.get(domain,),])print(f{kw}:{len(rows)}条累计)withopen(images.csv,w,newline,encodingutf-8-sig)asf:writercsv.writer(f)writer.writerow([关键词,标题,图片URL,来源页,域名])writer.writerows(rows)print(f已导出{len(rows)}条图片元数据)utf-8-sig保证 Excel 打开不乱码。第三步按需下载原图如果确实要下载原图建议加节流和失败处理图片端点失败同样自动退 creditsimporttimeimportrequestsdefdownload_image(url,save_path,timeout30):try:resprequests.get(url,timeouttimeout)ifresp.status_code200:withopen(save_path,wb)asf:f.write(resp.content)returnTrueexceptException:passreturnFalse# 示例下载前 5 张fori,imginenumerate(images[:5]):okdownload_image(img[image_url],fimg_{i}.jpg)print(fimg_{i}.jpg:{成功ifokelse失败})time.sleep(0.5)# 控制节奏注意下载图片本身不消耗 API credits只有搜索请求扣但注意图片版权商用需谨慎。费用与建议/google/images每次2 credits注册送 100 次免费搜索 约 50 次图片搜索够测一个完整流程标准包 $10 买 2 万次$0.50/千次永不过期图片按 2 credits 算约合 $1/千次批量前先小样本验证字段是否齐全再放大规模常见问题Qthumbnail_url和image_url有时是空的A这两个字段是可选的有的结果只给一个代码里用.get()兜底就行。Q能采集图片所在网站的信息吗A图片返回里有link来源页和domain域名要更深的网页信息可以配合/google/search再查。Q图片能直接商用吗A版权取决于图片本身采集到的是 URL 和元数据是否可用请自行确认授权。结语图片采集的核心价值在「元数据先行」——先拿到 URL、来源、域名列表按需再下载成本和风险都可控。用 API 拿结构化 JSON比解析图片搜索页快一个数量级。完整参数见 SerpBase 官方文档。先跑通第一步看看你能抓到什么图。
返回列表