我写此文的目的在于展示以编程的方式使用Instagram的基本方法.我的方法可用于数据分析、计算机视觉以及任何你所能想到的酷炫项目中.
Instagram是最大的图片分享社交媒体平台,每月活跃用户约五亿,每日有九千五百万的图片和视频被上传到Instagram.其数据规模巨大,具有很大的潜能.本文将给出如何将Instagram作为数据源而非一个平台,并介绍在项目中使用本文所给出的开发方法.
API和工具简介
Instagram提供了官方API,但是这些API有些过时,并且当前所提供的功能也非常有限.因此在本文中,我使用了LevPasha提供的非Instagram官方API.该API支持所有关键特性,例如点赞、加粉、上传图片和视频等.它使用Python编写,本文中我只关注数据端的操作.
我推荐使用Jupyter Notebook和IPython.使用官方Python虽然没有问题,但是它不提供图片显示等特性.
安装
你可以使用pip安装该软件库,命令如下:
python -m pip install -e git+https://github.com/LevPasha/Instagram-API-python.git#egg=InstagramAPI
如果系统中尚未安装ffmpeg,那么在Linux上,可以使用如下命令安装:
sudo apt-get install ffmpeg
对于Windows系统,需在Python解释器中运行如下命令:
import imageioimageio.plugins.ffmpeg.download()
下面使用API,实现登入Instragram:
from InstagramAPI import InstagramAPIusername="YOURUSERNAME"InstagramAPI = InstagramAPI(username, "YOURPASSWORD")InstagramAPI.login()
如果登录成功,那么你会收到"登陆成功"的消息.
基本请求
烟台达内:做好上面的准备工作后,我们可以着手实现首次请求:
InstagramAPI.getProfileData()result = InstagramAPI.LastJson
{u'status': u'ok',u'user': {u'biography': u'',u'birthday': None,u'country_code': 20,u'email': aaa@#',u'external_url': u'',u'full_name': u'Nour Galaby',u'gender': 1,u'has_anonymous_profile_picture': False,u'hd_profile_pic_url_info': {u'height': 1080,u'url': u'#/t51.2885-1aaa7448121591_1aa.jpg',u'width': 1080},u'hd_profile_pic_versions': [{u'height': 320,u'url': u'#/t51.2885-19/s320x320/19aa23237_4337448121591_195310aaa32_a.jpg',u'width': 320},{u'height': 640,u'url': u'#/t51.2885-19/s640x640/19623237_45581744812153_44_a.jpg',u'width': 640}],u'is_private': True,u'is_verified': False,u'national_number': 122,u'phone_number': u'+201220',u'pk': 22412229,u'profile_pic_id': u'1550239680720880455_22',u'profile_pic_url': u'#/t51.2885-19/s150x150/19623237_455817448121591_195310166162_a.jpg',u'show_conversion_edit_entry': False,u'username': u'nourgalaby'}}
如上所示,结果是以JSON格式给出的,其中包括了所有请求的数据.
你可以使用正常的键值方式访问结果数据.例如:
你也可以使用工具(例如Notepad++)查看JSON数据,并一探究竟.
获取并查看Instagram时间线
下面让我们实现一些更有用的功能.我们将请求排在时间线最后的帖子,并在Jupyter Notebook中查看.
下面代码实现获取时间线:
InstagramAPI.timelineFeed()
类似于前面的请求实现,我们同样使用LastJson()查看结果.查看结果JSON数据,我们可以看到其中包括一系列称为"条目"的键值.列表中的每个元素保存了时间线上特定帖子的信息,其中包括如下元素:
[text]:保存了标题下的帖子文本内容,包括hashtag.
[likes]:帖子中的点赞数.
[created_at]:帖子创建时间.
[comments]:帖子的评论.
[image_versions]:保存有指向实际JPG文件的链接,可使用该链接在Jupyter Notebook中显示图片.
更多烟台达内相关资讯,请扫描下方二维码