使用Python调用Flickr API抓取图片数据

Flickr是雅虎旗下的图片分享网站,上面有全世界网友分享的大量精彩图片,被认为是专业的图片网站。其API也很友好,可以实现多种功能。这里我使用了Python调用其API获得了大量的照片数据。

首先需要先去Flickr注册成为其开发者,创建应用,获得API_KEY和API_SECRET,其API网址在:https://www.flickr.com/services/api/

Flickr提供了多种开发工具进行使用。这里我们使用Python开发工具。官方推荐的开发工具是Beej’s Python Flickr API. https://stuvel.eu/flickrapi

可以直接使用pip安装工具进行安装,输入flickrapi即可自动安装好。

官方文档在这里:https://stuvel.eu/flickrapi-doc/

爬取照片数据最好的方法是使用其walk方法。这个方法实质上是调用了flickr.photos.search的接口,各种参数可以参见该API的介绍:https://www.flickr.com/services/api/flickr.photos.search.html

用好这个方法,输入不同的参数,就可以满足大部分数据挖掘的需要,包括时间、地理位置、照片类型等。

这里贴上一段简单的代码,仅供参考:

 1 #coding:utf-8
 2 import flickrapi
 3 #输入API的key和secret
 4 flickr=flickrapi.FlickrAPI(api_key,api_secret)
 5 try:
 6     #爬取text为‘New York‘的照片,这里可以根据自己的需要设置其它的参数
 7     photos=flickr.walk(text=‘New York‘,extras=‘url_c‘)
 8 except e:
 9     print(‘Error‘)
10 for photo in photos:
11     #获得照片的url,设置大小为url_c(具体参数请参看FlickrAPI官方文档介绍)
12     url=photo.get(‘url_c‘)
13     print(str(url))

需要注意的地方在于,倘若出现循环的情况,可能是因为数据量太大,因此需要加一些限制条件限制,例如一次调用只调用一段时间内的数据,再分批次挖掘数据。

时间: 2024-10-12 08:57:09

使用Python调用Flickr API抓取图片数据的相关文章

Python调用微博API

上头叫通过微博ID获取用户发布过的历史微博内容,于是研究了下新浪微博提供的API 1 首先在微博开放中心下"创建应用"创建一个应用,应用信息那些随便填,填写完毕后,不需要提交审核,需要的只是那个app-key和app-secret 2 在"微博开放平台"的"管理中心"找到刚才创建的应用,点开这个应用,点开左边"应用信息"栏,会看见"App key"和"App Secret"的字样,这两个

python调用zabbix api接口实时展示数据

近日公司准备自已做一个运维管理平台,其中的监控部分,打算调用zabbix api接口来进行展示. 经过思考之后,计划获取如下内容: 1.  获得认证密钥 2.  获取zabbix所有的主机组 3.  获取单个组下的所有主机 4.  获取某个主机下的所有监控项 5.  获取某个监控项的历史数据 6.  获取某个监控项的最新数据 计划最后展示框架如下内容(这只是值方面,其它的会再加): 主机组1 ----主机名1---监控项1----当前值 ---监控项2----当前值 ----主机名2----监控

(二)Python调用Zabbix api之从入门到放弃——登录并获取身份验证令牌

访问zabbix api的URL是: http://x.x.x.x/zabbix/api_jsonrpc.php x.x.x.x可能是你的IP或者域名 访问流程概览: 1.首先登录 2.认证成功后zabbix server返回一个token 3.带着这个token去访问各种数据,做各种操作 4.完毕! 一.用RESTClient进行登录 在json请求的正文中,具有以下属性: jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现JSON-RPC版本2.0; me

Python调用ansible API系列(四)动态生成hosts文件

方法一:通过最原始的操作文件的方式 #!/usr/bin/env python # -*- coding: utf-8 -*- """ 通过操作文件形式动态生成ansible的hosts文件 """ import sys class Inventory: def __init__(self): # ansible的hosts文件路径 self._hostsfile = "./aaa" self._data = self._ge

python抓取数据,python使用socks代理抓取数据

在python中,正常的抓取数据直接使用urllib2 这个模块: import urllib2 url = 'http://fanyi.baidu.com/' stream = urllib2.urlopen(url) cont = stream.read() print cont 如果要走http代理的话,我们也可以使用urllib2,不需要引用别的模块: import urllib2 url = 'https://clients5.google.com/pagead/drt/dn/dn.j

python 调用zabbix api实现查询主机信息,输出所有主机ip

之前发现搜索出来的主机调用zabbix api信息都不是那么明确,后来通过zabbix官方文档,查到想要的api信息,随后写一篇自己这次项目中用到的api. #!/usr/bin/env python #coding:utf8 import requests import json headers = {'Content-Type': 'application/json-rpc'} server_ip = '10.37.149.109' url = 'http://%s/zabbix/api_j

Python调用Windows API函数编写录音机和音乐播放器

功能描述: 1)使用tkinter设计程序界面: 2)调用Windows API函数实现录音机和音乐播放器. . 参考代码: ? 运行界面: ? 原文地址:https://www.cnblogs.com/7758520lzy/p/12149931.html

通过调用Twitter API抓取Twitter数据

国内研究weibo的人比较多,资料也相对较多,但是twitter的资料相对较少.今天简单说一下twitter api的使用.最近一小需求,采集含有指定关键词的twitter数据,瞬间想到写个爬虫来抓取,后来突然想到twitter应该有open api可用.使用了vpn翻墙之后简单的了解了twitter.com,决定直接使用 twitter api.由于twitter的open api现在也是基于oauth协议的,因此使用流程和国内一些社区比如说人人网,weibo的api的过程类似. 要想使用tw

python的post请求抓取数据

python通过get方式,post方式发送http请求和接收http响应-urllib urllib2 python通过get方式,post方式发送http请求和接收http响应-- import urllib模块,urllib2模块, httplib模块 http://blog.163.com/[email protected]/blog/static/132229655201231085444250/ 测试用CGI,名字为test.py,放在apache的cgi-bin目录下:#!/usr