写个小爬虫:camera360一拍即传照片直播平台 照片一键下载

这是一个Python脚本,用于从http://www.yipai360.com/一拍即传照片直播平台爬取指定相册ID的图片,并将其保存到用户指定的本地目录。脚本通过POST请求获取相册图片信息,然后逐页下载图片,每页最多50张。用户需提供相册ID和保存路径。
摘要由CSDN通过智能技术生成

爬取平台:http://www.yipai360.com/ 一拍即传 照片直播平台
爬取链接示例http://y.camera360.com/photolivepc/?orderId=201811141356497209&collectUrl=https://y.camera360.com/photolive/collect?name=dashu_equestrian&channel=h5&from=singlemessage&isappinstalled=0&channel=h5&origin=link
请添加图片描述
入参

orderId #相册ID
address #需要下载图片保存到的本地目录路径

源码

#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import os

def getTotol(id):
    data = {
        'orderId': id
    }
    try:
        res = requests.post('http://y.camera360.com/applet/v2/order/detail',data)
        if(res.status_code == 200):
            return res.json()['data']['photoCount']
        print("请求异常")
        return res
    except Exception as e:
        print("请输入正确的相册id!")
    
def requestPageData(id,total,address):
    for pageNum in range(1,int(total/50) + 1): # total/50 + 1
        print('正在爬取第'+ str(pageNum) + '页......')
        data = {
            'orderId': id,
            'pageNo': pageNum,
            'sortType': 'desc',
            'tagId': ''
        }
        r = requests.post("http://y.camera360.com/applet/v2/photo/select-page", data)
        pageData = r.json()
        
        photos = []
        for i in pageData['data']['result']:
            temp = {
                'fname': i['fname'],
                'imgurl': 'https://c360-o2o.c360dn.com/' + i['etag']
            }
            photos.append(temp)
        # print(photos)
        saveImg(photos,address)

def saveImg(image_url_list,address):
    count = 0
    for i in image_url_list:
        count = count + 1
        print(str(count) + '/50')
        img_resp = requests.get(i['imgurl'])
        try:
            with open(r'%s%s'%(address, i['fname']),'wb') as imgf:
                imgf.write(img_resp.content)
        except Exception as e:
            print(e)
    print("Success!本页已爬取完成!")

def main():
    print("=======欢迎来到Camera360图片直播下载工具======")
    albumID = input("请输入您要下载的相册orderId:")
    address = input("请需要保存到的目录路径(全路径,Windows系统请携带盘符):")
    # 判断路径是否存在
    if not os.path.exists(address):
        print('路径不存在!')
        return
    # 获取本相册的照片数量
    total = getTotol(albumID)
    if(total):
        print("该相册共有"+ str(total) + "张图片,即将开始下载......")
        # 爬取数据
        requestPageData(albumID,total,address)

if __name__ == '__main__':
    main()

运行截图:
在这里插入图片描述
使用方法
Step(1):复制代码保存至camera360.py
Step(2):确保Python环境已安装,命令行运行python -V,若看到Python版本号即证明Python环境已安装,否则需要先安装,方法请自行百度
Step(3):进入第1步py文件所保存的目录,输入python camera360.py运行python文件,根据文字提示键入所需信息即可

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值