【问题标题】:I can't download google images using python selenium我无法使用 python selenium 下载谷歌图片
【发布时间】:2020-02-11 11:15:30
【问题描述】:

您好,我正在使用 selenium 抓取 Google 图片。但效果并不好。我怎样才能让这个代码工作?我的代码如下所示。

之前我用google_images_download,突然卡住了。所以我正在寻找一种新的方法,我希望有人可以帮助谢谢你

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import json
import os
import urllib.request as urllib2
import argparse

searchterm = 'spider' # will also be the name of the folder
url = "https://www.google.co.in/search?q="+searchterm+"&source=lnms&tbm=isch"
# NEED TO DOWNLOAD CHROMEDRIVER, insert path to chromedriver inside parentheses in following line
browser = webdriver.Chrome('C:\Python27\Scripts\chromedriver')
browser.get(url)
header={'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36"}
counter = 0
succounter = 0

if not os.path.exists(searchterm):
    os.mkdir(searchterm)

for _ in range(500):
    browser.execute_script("window.scrollBy(0,10000)")

for x in browser.find_elements_by_xpath('//div[contains(@class,"rg_meta")]'):
    counter = counter + 1
    print("Total Count:", counter)
    print("Succsessful Count:", succounter)
    print("URL:",json.loads(x.get_attribute('innerHTML'))["ou"])

    img = json.loads(x.get_attribute('innerHTML'))["ou"]
    imgtype = json.loads(x.get_attribute('innerHTML'))["ity"]
    try:
        req = urllib2.Request(img, headers={'User-Agent': header})
        raw_img = urllib2.urlopen(req).read()
        File = open(os.path.join(searchterm , searchterm + "_" + str(counter) + "." + imgtype), "wb")
        File.write(raw_img)
        File.close()
        succounter = succounter + 1
    except:
            print("can't get img")

print (succounter, "pictures succesfully downloaded")
browser.close()

【问题讨论】:

  • 如果你只是在寻找一种新的方式,在线搜索“selenium webdriver google images”可能会得到类似this或this的结果

标签: python web web-crawler


【解决方案1】:

我决定从 Google 图片以外的其他网站抓取图片。

【讨论】:

    【解决方案2】:

    我也遇到了从谷歌抓取图片的问题,就像你使用rg_meta的方法一样

    谷歌图片搜索结果网页源代码已更改,自 2020 年初起不再提供rg_meta。

    rg_meta 标签也改为随机字符串,如

    rg_X XXXXXX XXXXXX
    

    我认为 Google 开始禁止抓取机器人并导致使用 Google 自定义搜索 API。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 2022-02-16
      • 1970-01-01
      相关资源
      最近更新 更多