worldcosplay.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # coding=utf-8
  2. import json
  3. from sys import argv
  4. # import requests
  5. import os
  6. import urllib
  7. import urllib2
  8. def main(member_id, page=1, index=0):
  9. url = 'http://worldcosplay.net/en/api/member/photos?member_id=%s&page=%s&limit=100000&rows=16&p3_photo_list=1' % (member_id, page)
  10. r = urllib2.urlopen(url)
  11. if r.code == 200:
  12. data = json.loads(r.read())
  13. if data['has_error'] != 0:
  14. print u'接口挫了'
  15. exit(1)
  16. photo_data_list = data['list']
  17. if not photo_data_list:
  18. print u'没东西了?第 %s 页,共下载了 %s 个图片' % (page, index - 1)
  19. exit(0)
  20. for photo_data in photo_data_list:
  21. url = photo_data['photo']['sq300_url']
  22. subject = photo_data['photo']['subject']
  23. url = url.replace('/sq300', '')
  24. subject = subject.replace('/', '_')
  25. if not os.path.exists(member_id):
  26. os.makedirs(member_id)
  27. filename = '%s/%s_%s_%s.jpg' % (member_id, member_id, index, subject)
  28. try:
  29. urllib.urlretrieve(url=url, filename=filename)
  30. print u'下完了%s张' % (index + 1)
  31. index += 1
  32. except Exception:
  33. print(u'这张图片下载出问题了: %s' % url)
  34. page += 1
  35. main(member_id, page=page, index=index)
  36. else:
  37. print u'挫了'
  38. exit(1)
  39. if __name__ == '__main__':
  40. if len(argv) < 2:
  41. print(u'请输入coser ID,例如:53056')
  42. exit(1)
  43. member_id = argv[1]
  44. main(member_id)