用Python爬虫去找小姐姐(WorldCosPlay)

这几天无聊,就想看看爬虫,想把小姐姐都爬下来。

(@ElyEE子 真的好可爱啊)

本来是打算爬微博的,但是微博的设置麻烦,移动页面又加了https,加大了爬的难度。

于是看看ElyEE的简介发现她有在WorldCosPlay上发照片,于是就开始爬啦。

早上花了两个小时在琢磨WorldCosPlay的图片。发现其并不是直接在页面上有的,而是通过异步加载加载出来的。于是就开始找它的借口

但是死也找不到,最后在差不多放弃的时候,看到知乎上的一篇文章,就是WorldCosPlay的爬虫教程,里面就有其API接口,输出json数据。

于是就读json然后下载就可以啦

WorldCosPlay图片接口信息:

请求地址:http://worldcosplay.net/en/api/member/photos

请求方式:GET

参数:

member_id:C0s的ID

page:页面页数

limit:默认100000

rows:默认16

p3_photo_list:默认1

返回类型:JSON

 

效果


以下是代码,基于Python2.7

# coding=utf-8
import json
from sys import argv
# import requests
import os
import urllib
import urllib2


def main(member_id, page=1, index=0):
    url = 'http://worldcosplay.net/en/api/member/photos?member_id=%s&page=%s&limit=100000&rows=16&p3_photo_list=1' % (member_id, page)
    r = urllib2.urlopen(url)

    if r.code == 200:
        data = json.loads(r.read())
        if data['has_error'] != 0:
            print u'接口挫了'
            exit(1)

        photo_data_list = data['list']
        if not photo_data_list:
            print u'没东西了?第 %s 页,共下载了 %s 个图片' % (page, index - 1)
            exit(0)
        for photo_data in photo_data_list:
            url = photo_data['photo']['sq300_url']
            subject = photo_data['photo']['subject']
            url = url.replace('/sq300', '')
            subject = subject.replace('/', '_')

            if not os.path.exists(member_id):
                os.makedirs(member_id)

            filename = '%s/%s_%s_%s.jpg' % (member_id, member_id, index, subject)
            try:
                urllib.urlretrieve(url=url, filename=filename)
                print u'下完了%s张' % (index + 1)
                index += 1
            except Exception:
                print(u'这张图片下载出问题了: %s' % url)

        page += 1
        main(member_id, page=page, index=index)

    else:
        print u'挫了'
        exit(1)


if __name__ == '__main__':
    member_id = raw_input('请输入coser ID,例如:18943,不知道的亲F12在图片的链接里面找')
    main(member_id)
    print "存储在 PY文件目录/CosID 中"

源代码来源于 geekerlee.com(其修改为Python3) | 最终来源的源代码:GitHub – ZhangBohan/fun_crawler


剧透:我又写了个半次元的python爬虫,下星期扔出来吧,先上学了


于是献上几张爬到的ElyEE的片啦

4 条评论

昵称

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  1. 悠然

    woc这个托尔

    1. 很懒的樱花

      蛤,把小姐姐都爬下来[滑稽]

  2. 星空游戏

    沙发?

    1. 很懒的樱花

      不是沙发还能是啥hh