我正在尝试对带有指定主题标签的 Instagram 照片进行一些分析分析。所以现在我试图将所有图像存储在一个临时数据库中,用于分析。
我正在使用 python,我有一个 celery 任务来获取所有图像,但是当我使用 next_max_tag_id 运行时它不起作用,这可能是错误的。
有人知道如何获得正确的 next_max_tag_id 吗?
这是我正在使用的代码:
@task()
def get_latest_photos():
next_max_tag_id = get_option('next_max_tag_id')
if not next_max_tag_id:
next_max_tag_id = 0
url = BASE + '/tags/{tag}/media/recent?client_id={cliend_id}' \
'&max_tag_id={max_id}'.format(**{
'tag': a_tag,
'cliend_id': getattr(settings, 'INSTAGRAM_CLIENT_ID'),
'max_id': next_max_tag_id
})
while url:
request = requests.get(url)
if request.status_code != 200:
pass #TODO: error
json_response = request.json()
if json_response['meta']['code'] != 200:
pass #TODO: error
# do something with json_response['data']:
url = None
if json_response.has_key('pagination'):
pagination = json_response['pagination']
if pagination.has_key('next_url'):
url = json_response['pagination']['next_url']
if pagination.has_key('next_max_tag_id'):
next_max_tag_id = pagination['next_max_tag_id']
update_option('next_max_tag_id', next_max_tag_id)
流程基本上是这样的:
- 从数据库中获取 next_max_tag_id(默认为 0)
- 当我们有一个有效的 URL 时,它会获取数据、下一个 url 和 next_max_tag_id
- 更新 next_max_tag_id
对我来说唯一错误的是 next_max_tag_id,因为每次我使用最后一个 next_max_tag_id 访问 API URL 时,我都会得到旧图像。