Pinterest.com API 分析

一篇关于网站 Pinterest 的 API 分析报告,用于快速采集 Pinterest 上的图片

Wikipedia: Pinterest(中文译名:缤趣),是一个网络与手机的应用程序,可以让用户利用其平台作为个人创意及项目工作所需的视觉探索工具,同时也有人把它视为一个图片分享类的社交网站,用户可以按主题分类添加和管理自己的图片收藏,并与好友分享。其使用的网站布局为瀑布流(Pinterest-style layout)。

原始图片获取

普通

https://s-media-cache-ak0.pinimg.com/236x/01/46/45/014645396a21dce7e712d312d67b098b.jpg

替换为

https://s-media-cache-ak0.pinimg.com/originals/01/46/45/014645396a21dce7e712d312d67b098b.jpg

/236x 替换为 /originals

图片格式改变

https://s-media-cache-ak0.pinimg.com/564x/4e/00/1d/4e001d8d94cdd26036b8ae3653029336.jpg

替换为

https://s-media-cache-ak0.pinimg.com/originals/4e/00/1d/4e001d8d94cdd26036b8ae3653029336.png

若请求 /originals 返回 404 则一般都是原图格式不一样,将 .jpg 替换为 .png

获取资源

直接请求页面

图片

https://za.pinterest.com/explore/naruto/

$arr['module']['tree']['children'][0]['data']['interest_feed']

https://za.pinterest.com/royteng/animemanga/ (用户board)

$arr['module']['tree']['children'][0]['data']['board_feed']

循环再获取 ['images']['orig']['url'] 得到原始图片;获取ID: ['id']

注意 interest_feedboard_feed 的不同)

火种

重要!必须先获取,才能用于加载更多

$arr['module']['tree']['data']['id'] (id火种)获取后不变,一直传递

$arr['module']['tree']['data']['name'] (名称火种)获取后不变,一直传递

$arr['module']['tree']['children'][0]['data']['bookmarks'] (bookmarks火种)会变化,用于获得更多数据

加载更多

图片

$arr['resource_response']['data'] 循环再获取 ['images']['orig']['url'] 获取ID: ['id']

取得火种

$arr['RESOURCE']['OPTIONS']['BOOKMARKS'][0] (bookmarks火种,用于下一次加载更多)

(获取资源 Get 方式 并 模拟 AJAX 请求)

加载更多接口

API

$aLink: https://za.pinterest.com/resource/BoardFeedResource/get/?data={}

$bLink: https://za.pinterest.com/resource/InterestsFeedResource/get/?data={}

注意 BoardFeedResourceInterestsFeedResource 的不同

例子

https://za.pinterest.com/royteng/animemanga/(用户board)

$aLink: ?data = {"options":{"pins_only":false ,"bookmarks":["bookmarks火种"],"board_id":"id火种","add_vase":true},"context":{}}

data 数据包含键 board_id

https://za.pinterest.com/explore/naruto/

$bLink: ?data = {"options":{"pins_only":false,"interest_name":"名称火种","bookmarks":["bookmarks火种"],"interest":" id火种","add_vase":true},"context":{}}

data 数据包含键 interest_nameinterest

(data 值需要 urlencode(),请求以 Get 方式模拟 AJAX)

注意

  • 获取数据注意 Get 方法 并 模拟 AJAX,模拟 AJAX 请求 header 携带 X-Requested-With: XMLHttpRequest

By ZNEIAT

2017-1-28
本站文章除注明转载外均为原创,未经允许不要转载哇. ヾ(゚ー゚ヾ) http://qwqaq.com/295aa8a5.html
分享到