我正在尝试在python中编写脚本,以便从谷歌搜索中抓取图像。我想跟踪图像的网址,然后将这些图像存储到我的计算机上。我找到了一个代码来做到这一点。但它只跟踪60个网址。出现超时消息后。是否可以追踪60多张图像? 我的代码:
def crawl_images(query, path):
BASE_URL = 'https://ajax.googleapis.com/ajax/services/search/images?'\
'v=1.0&q=' + query + '&start=%d'
BASE_PATH = os.path.join(path, query)
if not os.path.exists(BASE_PATH):
os.makedirs(BASE_PATH)
counter = 1
urls = []
start = 0 # Google's start query string parameter for pagination.
while start < 60: # Google will only return a max of 56 results.
r = requests.get(BASE_URL % start)
for image_info in json.loads(r.text)['responseData']['results']:
url = image_info['unescapedUrl']
print url
urls.append(url)
image = urllib.URLopener()
try:
image.retrieve(url,"model runway/image_"+str(counter)+".jpg")
counter +=1
except IOError, e:
# Throw away some gifs...blegh.
print 'could not save %s' % url
continue
print start
start += 4 # 4 images per page.
time.sleep(1.5)
crawl_images('model runway', '')
答案 0 :(得分:3)
查看文档:{{3}}
您最多可以获得64个结果:
注意:Image Searcher最多支持8个结果页面。什么时候 结合后续请求,最多总共64个结果 可用。不可能要求超过64个结果。
另一个注意事项:您可以限制文件类型,这样您就不需要忽略GIF等。
另外请注意,请注意,此API只应用于用户操作,而不能用于自动搜索!
注意:Google Image Search API必须用于用户生成 搜索。任何类型的自动或批量查询都是严格的 禁止的。
答案 1 :(得分:1)
您可以试用icrawler套餐。非常容易使用。我从未遇到过要下载的图片数量的问题。