爬取平台: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文件,根据文字提示键入所需信息即可