鱼C论坛

 找回密码
 立即注册
查看: 4007|回复: 26

[已解决]怎么下载google图片搜索里第2行第1列的图片呢?

[复制链接]
发表于 2022-8-27 22:04:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
plum.jpg


想用 seliumn 自动抓一些跟单词对应的图片。 但图片搜索网页源码里没看到有图片相关的东西。
最佳答案
2022-8-29 20:12:03
blackantt 发表于 2022-8-29 19:39
C:%users\dengz\Downloads\google-image1>python edge-image1.py
输入爬取的单词图片:cat

以下是改进后的代码
import requests
from selenium import webdriver
from pyquery import PyQuery
import re
import base64

word = input('输入爬取的单词图片:')

driver = webdriver.Edge()
url = f'https://www.google.com/search?q={word}&source=lnms&tbm=isch'
driver.get(url)
# input(":")
img = driver.page_source
length = 0
for i in PyQuery(img)('#islrg div div a div img').items():
    img_name = '%s.jpg' % word
    if not i.attr('src'):
        code = requests.get(i.attr('data-src')).content
    else:
        if str(i.attr('src')).startswith('http'):
            code = requests.get(i.attr('src')).content
        else:
            code = base64.b64decode(re.sub(r'data:image/.+?;base64,', '', str(i.attr('src'))))
    with open(img_name, 'wb') as f:
        f.write(code)
    break
非常感谢,大大提升了搜索效率
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-28 06:36:08 From FishC Mobile | 显示全部楼层
这个一般都不会出现在源码中,一般都是ajax传过来的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-28 07:19:17 | 显示全部楼层
wp231957 发表于 2022-8-28 06:36
这个一般都不会出现在源码中,一般都是ajax传过来的

那这种 ajax 能通过喂单词,然后下载它的某个位置的图片吗?  因为想批量,所以拷屏不行,(拷屏下来还得一个一个切,反倒麻烦了)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-28 07:22:01 From FishC Mobile | 显示全部楼层
blackantt 发表于 2022-8-28 07:19
那这种 ajax 能通过喂单词,然后下载它的某个位置的图片吗?  因为想批量,所以拷屏不行,(拷屏下来还得 ...

这个需要分析,因为谷歌我们也打不开,所以也没办法帮你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-28 07:24:46 From FishC Mobile | 显示全部楼层
blackantt 发表于 2022-8-28 07:19
那这种 ajax 能通过喂单词,然后下载它的某个位置的图片吗?  因为想批量,所以拷屏不行,(拷屏下来还得 ...

你这东西好像是靠肉眼识别,能自动化吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-28 10:23:01 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-28 11:14:54 | 显示全部楼层
我差不多成功了,唯一的问题就是没法指定抓哪张图片,全抓你觉得行不行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-28 11:46:52 | 显示全部楼层
现在能只抓第一张图片了,你是要能够指定抓哪张还是只抓第一张就行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-28 15:32:14 From FishC Mobile | 显示全部楼层
只抓第1行  或  第2行的第1个图片,能行吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-28 15:36:59 | 显示全部楼层
你是怎么上的谷歌呢?

我非常想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-28 15:39:25 | 显示全部楼层
鱼cpython学习者 发表于 2022-8-28 11:46
现在能只抓第一张图片了,你是要能够指定抓哪张还是只抓第一张就行?

只抓第1行  或  第2行的第1个图片,能行吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 07:59:47 | 显示全部楼层
嘉岳呀 发表于 2022-8-28 15:36
你是怎么上的谷歌呢?

我非常想知道

小甲鱼是怎么上谷歌的呢?我想知道(你就说你这问题废话不)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 08:01:46 From FishC Mobile | 显示全部楼层
编程追风梦 发表于 2022-8-29 07:59
小甲鱼是怎么上谷歌的呢?我想知道(你就说你这问题废话不)

说的好像你能上去??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 08:24:08 | 显示全部楼层
wp231957 发表于 2022-8-29 08:01
说的好像你能上去??

哈哈哈哈哈哈哈哈哈哈,我现在在菲律宾怎么上不去?要视频吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 08:28:20 | 显示全部楼层
不相信是吧?

还好像我能上去是的,诶,对,我就是能上去

video1536870631.zip

1.84 MB, 下载次数: 3

你自己看看吧

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 11:45:44 | 显示全部楼层
blackantt 发表于 2022-8-28 15:39
只抓第1行  或  第2行的第1个图片,能行吗?

有点难,我看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 13:18:32 | 显示全部楼层
blackantt 发表于 2022-8-28 15:39
只抓第1行  或  第2行的第1个图片,能行吗?

你说的第二行的第一个图片,是你的图片里面圈出来的那个吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-29 13:54:39 | 显示全部楼层
鱼cpython学习者 发表于 2022-8-29 13:18
你说的第二行的第一个图片,是你的图片里面圈出来的那个吗?

是的,因为我发现,这个位置的图片跟关键词的相关性最高。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 15:51:01 | 显示全部楼层
blackantt 发表于 2022-8-29 13:54
是的,因为我发现,这个位置的图片跟关键词的相关性最高。

我还以为你的第一列不是从最上面那些卡牌开始的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 16:06:43 | 显示全部楼层
import requests
from selenium import webdriver
from pyquery import PyQuery
import re
import base64

word = input('输入爬取的单词图片:')

driver = webdriver.Edge()
url = 'https://www.google.com.hk/search?q=%s' % word
driver.get(url)
# input(":")
html = PyQuery(driver.page_source)
for item in html('.hdtb-mitem').items():
    if item.text() in ['Image', '图片']:
        image_page = 'https://www.google.com.hk/' + item('a').attr('href')
        driver.get(image_page)
        # input(":")
        img = driver.page_source
        length = 0
        for i in PyQuery(img)('#islrg div div a div img').items():
            img_name = '%s.jpg' % word
            if not i.attr('src'):
                code = requests.get(i.attr('data-src')).content
            else:
                if str(i.attr('src')).startswith('http'):
                    code = requests.get(i.attr('src')).content
                else:
                    code = base64.b64decode(re.sub(r'data:image/.+?;base64,', '', str(i.attr('src'))))
            with open(img_name, 'wb') as f:
                f.write(code)
            break
记得安装pyquery库,还有第九行的webdriver.Edge()记得传入驱动路径,我是因为驱动在环境变量里设置了才不用传入路径
你也可以用webdriver.Chrome,都行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-28 06:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表