372 lines
22 KiB
Python
372 lines
22 KiB
Python
import requests
|
|
import lib
|
|
from core import excels, browsers
|
|
from utils import files, formats
|
|
|
|
class Shopyy:
|
|
def __init__(self, save_folder):
|
|
self.save_folder = save_folder
|
|
|
|
self.__album_template_path__ = 'sources/专辑模板.xlsx'
|
|
self.__navigation_template_path__ = 'sources/导航模板.xlsx'
|
|
|
|
# 导航
|
|
def generate_navigation(self, category_path):
|
|
index = {}
|
|
category_urls = files.load_lines(category_path)
|
|
|
|
WorkBook = excels.WorkBook(
|
|
template=self.__navigation_template_path__,
|
|
save_path=f"{self.save_folder}/导航表格.xlsx"
|
|
)
|
|
for category_url in category_urls:
|
|
category = category_url.split('#')[-1]
|
|
if category in index:
|
|
continue
|
|
category_lists = category.split('/')
|
|
category_lists += ['', '']
|
|
row_data = [
|
|
'顶部导航菜单',
|
|
category_lists[0],
|
|
category_lists[1],
|
|
category_lists[2],
|
|
'collection',
|
|
category
|
|
]
|
|
WorkBook.add_row_of_list(row_data)
|
|
index[category] = None
|
|
WorkBook.save()
|
|
|
|
return self
|
|
|
|
# 专辑
|
|
def generate_album(self, goods_url_path):
|
|
def open_workbook(bitch_index) -> excels.WorkBook:
|
|
WorkBook = excels.WorkBook(
|
|
template=self.__album_template_path__,
|
|
save_path=f"{self.save_folder}/专辑表格({bitch_index}).xlsx"
|
|
)
|
|
return WorkBook
|
|
|
|
album_data = {}
|
|
count = 0
|
|
bitch_index = 1
|
|
WorkBook = open_workbook(bitch_index)
|
|
|
|
goods_urls = files.load_lines(goods_url_path)
|
|
for goods_url in goods_urls:
|
|
if goods_url == '':
|
|
continue
|
|
goods_url_split = goods_url.split('#')
|
|
goods_categorys = goods_url_split[-1].split('/')
|
|
goods_url = '#'.join(goods_url_split[:-1])
|
|
goods_url = goods_url.split('?')[0]
|
|
|
|
for category_index, goods_category in enumerate(goods_categorys):
|
|
goods_category = '/'.join(goods_categorys[:category_index + 1])
|
|
|
|
if goods_category in album_data:
|
|
mode = ''
|
|
sort = ''
|
|
else:
|
|
mode = 'add'
|
|
sort = 'collections_position'
|
|
album_data[goods_category] = []
|
|
|
|
row_data = [
|
|
'',
|
|
goods_category,
|
|
mode,
|
|
sort,
|
|
'',
|
|
formats.url_to_spu(goods_url)
|
|
]
|
|
album_data[goods_category].append(row_data)
|
|
count += 1
|
|
|
|
save_bitch = count/3+1
|
|
for goods_category, row_datas in album_data.items():
|
|
for row_data in row_datas:
|
|
WorkBook.add_row_of_list(row_data)
|
|
|
|
if WorkBook.start_row > save_bitch and bitch_index <= 2:
|
|
WorkBook.save()
|
|
WorkBook.close()
|
|
|
|
bitch_index += 1
|
|
WorkBook = open_workbook(bitch_index)
|
|
WorkBook.save()
|
|
WorkBook.close()
|
|
|
|
return self
|
|
|
|
class ShopyyVerify:
|
|
def __init__(self, url):
|
|
self.url = url
|
|
browser = browsers.getBrowsers()
|
|
self.tab = browser.get_tab(0)
|
|
self.login()
|
|
|
|
def login(self):
|
|
self.tab.get(f"{self.url}/admin/login")
|
|
print('等待登录')
|
|
while True:
|
|
token = self.tab.local_storage('CARDADMIN_TOKEN')
|
|
if token:
|
|
print('登录成功')
|
|
self.token = token.replace('"', '')
|
|
break
|
|
self.tab.wait(1)
|
|
|
|
def get_zero_collections(self, delete: bool = False):
|
|
def get_collections(page):
|
|
headers = {
|
|
'accept': 'application/json, text/plain, */*',
|
|
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
|
'priority': 'u=1, i',
|
|
# 'referer': 'https://cisalfasport.zenshop.cn/admin/collections?page=1&pagesize=50',
|
|
'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Microsoft Edge";v="144"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'token': self.token,
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0',
|
|
# 'cookie': '__stripe_mid=89b6ec3f-bbac-483d-b8ab-9938859a0b340b72d8; _aiihbe_vid=18FC7E3E-1CA7-FDC2-C52D-37A4BB0E1DF0; _aiihbe_cvid=75CFD325-E408-2C25-C126-07A349ED46C5; utm_source=direct; utm_medium=default; order_utm_history=%5B%7B%22utm_source%22%3A%22direct%22%2C%22utm_medium%22%3A%22default%22%2C%22utm_term%22%3A%22%22%2C%22utm_campaign%22%3A%22%22%2C%22utm_content%22%3A%22%22%2C%22source_device%22%3A%22computer%22%2C%22create_time%22%3A1770185710%2C%22expire_time%22%3A1772777710%7D%5D; landing_page=aHR0cHM6Ly9jaXNhbGZhc3BvcnQuemVuc2hvcC5jbi9wcm9kdWN0cy90b3VyLWRlLWZyYW5jZS1qcj9wcmV2aWV3PTE%3D; first_http_referer=https%3A%2F%2Fcisalfasport.zenshop.cn%2Fadmin%2Fproducts; first_visit_time=1770185710; PHPSESSID=6329e9a44018771ce40064bc50fbe189; _aiihbe_vs=36B35E5C-874E-4D6C-8945-F5CF6F323F99; theme_id=411278; _AIIHBE_ua=Mozilla%252F5.0%2520(Windows%2520NT%252010.0%253B%2520Win64%253B%2520x64)%2520AppleWebKit%252F537.36%2520(KHTML%252C%2520like%2520Gecko)%2520Chrome%252F144.0.0.0%2520Safari%252F537.36%2520Edg%252F144.0.0.0; _AIIHBE_pu=https%253A%252F%252Fcisalfasport.zenshop.cn%252Fadmin%252Ftheme; _AIIHBE_tz=Etc%2FGMT-8; _AIIHBE_ss=1920X1080; _AIIHBE_lang=zh-CN; _AIIHBE_vs=1874X930; _AIIHBE_dt=2026-02-06%2016%3A30%3A44; acw_tc=a3b54ee217704477374193466e23fb58e387e54f5b84504527a4beab6b; cdn_sec_tc=a3b54ee217704477374193466e23fb58e387e54f5b84504527a4beab6b; __stripe_sid=49bcd8c1-4ae4-46ba-8e95-a29205606cb2980c18; visit_token=4be69765c90de228978e9738878367fbkj083fsy; _aiihbe_ka=A298A3E1-379E-4DA0-2B28-A5961B741FA9; is_theme_edit=1',
|
|
}
|
|
|
|
params = {
|
|
'page': str(page),
|
|
'pagesize': '600',
|
|
}
|
|
|
|
response = requests.get(f'{self.url}/api/collections', params=params, headers=headers)
|
|
response_data = response.json()
|
|
if response_data['code'] != 0:
|
|
raise Exception(response_data['msg'])
|
|
return response_data['data']
|
|
|
|
def delete_collections(ids: list):
|
|
headers = {
|
|
'accept': 'application/json, text/plain, */*',
|
|
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
|
'cache-control': 'no-cache',
|
|
'content-type': 'application/json',
|
|
'origin': 'https://peekcloppenburgat.zenshop.cn',
|
|
'pragma': 'no-cache',
|
|
'priority': 'u=1, i',
|
|
# 'referer': 'https://peekcloppenburgat.zenshop.cn/admin/collections?page=1&pagesize=600',
|
|
'sec-ch-ua': '"Not:A-Brand";v="99", "Microsoft Edge";v="145", "Chromium";v="145"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'token': self.token,
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 Edg/145.0.0.0',
|
|
# 'cookie': '__stripe_mid=49d8f368-8d82-4b14-9c42-63e0d33542ef6372ca; _bzcece_vid=E823CDA9-7EDE-3617-71BB-80F879AD878E; _bzcece_cvid=36F627EC-095F-9323-5047-43325149C808; utm_source=direct; utm_medium=default; order_utm_history=%5B%7B%22utm_source%22%3A%22direct%22%2C%22utm_medium%22%3A%22default%22%2C%22utm_term%22%3A%22%22%2C%22utm_campaign%22%3A%22%22%2C%22utm_content%22%3A%22%22%2C%22source_device%22%3A%22computer%22%2C%22create_time%22%3A1773370701%2C%22expire_time%22%3A1775962701%7D%5D; landing_page=aHR0cHM6Ly9wZWVrY2xvcHBlbmJ1cmdhdC56ZW5zaG9wLmNuL3Byb2R1Y3RzL3Zlcm8tbW9kYS13aWRlLWxlZy1qZWFucy1hdXMtYmF1bXdvbGwtbWl4LW1vZGVsbC10ZXNzYS1pbi1oZWxsZ3JhdT9wcmV2aWV3PTE%3D; first_http_referer=https%3A%2F%2Fpeekcloppenburgat.zenshop.cn%2Fadmin%2Fproducts; first_visit_time=1773370701; PHPSESSID=fba65fe62a66071f174801bb432b942c; theme_id=418468; __stripe_sid=323c1341-4108-4c33-b331-ea6b782f9a2349679f; visit_token=f1d5170d234867f2ca490821f454239bmwnlrqr7; _bzcece_vs=5F572333-803E-D038-11EC-6CFCBA6F32D3; _bzcece_ka=B2503B21-4B44-A5A0-F261-71EC86D52A6E; is_theme_edit=1; acw_tc=9b66b49a17734819180038754ede11478ee763b95bb1c9acff317f521f; cdn_sec_tc=9b66b49a17734819180038754ede11478ee763b95bb1c9acff317f521f',
|
|
}
|
|
|
|
json_data = {
|
|
'ids': ids,
|
|
}
|
|
|
|
response = requests.post(
|
|
f'{self.url}/api/collections/batchdelete',
|
|
headers=headers,
|
|
json=json_data,
|
|
)
|
|
print(response.json())
|
|
|
|
print('开始检查专辑数量')
|
|
collection_items = []
|
|
data = get_collections(1)
|
|
page_total = data['paginate']['pageTotal']
|
|
collection_items += data['collections']
|
|
print(f"1/{page_total}")
|
|
|
|
if page_total > 1:
|
|
for page in range(2, page_total+1):
|
|
data = get_collections(page)
|
|
collection_items += data['collections']
|
|
print(f"{page}/{page_total}")
|
|
|
|
lost_collection = []
|
|
zero_ids = []
|
|
for collection_item in collection_items:
|
|
if collection_item['collection_products_count'] == 0:
|
|
lost_collection.append(collection_item['title'])
|
|
print(f"{collection_item['title']} 数量为0")
|
|
zero_ids.append(collection_item['id'])
|
|
if delete:
|
|
delete_collections(zero_ids)
|
|
|
|
if len(lost_collection) > 0:
|
|
with open('商品数量为0专辑.txt', 'w', encoding='utf-8') as f:
|
|
f.write('\n'.join(lost_collection))
|
|
return self
|
|
|
|
def get_error_images(self, delete: bool = False):
|
|
def get_errors(page):
|
|
headers = {
|
|
'accept': 'application/json, text/plain, */*',
|
|
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
|
'cache-control': 'no-cache',
|
|
'dnt': '1',
|
|
'pragma': 'no-cache',
|
|
'priority': 'u=1, i',
|
|
# 'referer': 'https://vanuffelenmode.zenshop.cn/admin/resources',
|
|
'sec-ch-ua': '"Not:A-Brand";v="99", "Microsoft Edge";v="145", "Chromium";v="145"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'token': self.token,
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 Edg/145.0.0.0',
|
|
# 'cookie': 'acw_tc=a3b54dab17734824723112557e921e5eb8672de1b4bf2e0bfb7de57fe1; cdn_sec_tc=a3b54dab17734824723112557e921e5eb8672de1b4bf2e0bfb7de57fe1; __stripe_mid=cc09d025-360b-466e-bef4-ba92d045fdc94448e2; __stripe_sid=511d0972-d39d-4aa1-a031-5258db651ad1d4124e; visit_token=9b8172c220d5be292045835470d38951px0lh404',
|
|
}
|
|
|
|
params = {
|
|
'file_name': '',
|
|
'page_type': 'fail',
|
|
'page': str(page),
|
|
'pagesize': '600',
|
|
}
|
|
|
|
response = requests.get(f'{self.url}/api/resources', params=params, headers=headers)
|
|
response_data = response.json()
|
|
if response_data['code'] != 0:
|
|
raise Exception(response_data['msg'])
|
|
return response_data['data']
|
|
|
|
def post_retry(ids: list):
|
|
headers = {
|
|
'accept': 'application/json, text/plain, */*',
|
|
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
|
'content-type': 'application/json',
|
|
# 'origin': 'https://ssfshop.zenshop.cn',
|
|
'priority': 'u=1, i',
|
|
# 'referer': 'https://ssfshop.zenshop.cn/admin/resources',
|
|
'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Microsoft Edge";v="146"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'token': self.token,
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0',
|
|
# 'cookie': '__stripe_mid=a8059a05-4d7e-476d-b376-9e54f222efbe3c23c7; _bzgigi_vid=85F94DA2-7BD9-525E-E4A5-8D686E51B2C6; _bzgigi_cvid=EEFE28A2-FDC4-DC54-E76A-2BC1B2929243; utm_source=direct; utm_medium=default; order_utm_history=%5B%7B%22utm_source%22%3A%22direct%22%2C%22utm_medium%22%3A%22default%22%2C%22utm_term%22%3A%22%22%2C%22utm_campaign%22%3A%22%22%2C%22utm_content%22%3A%22%22%2C%22source_device%22%3A%22computer%22%2C%22create_time%22%3A1775195861%2C%22expire_time%22%3A1777787861%7D%5D; landing_page=aHR0cHM6Ly9zc2ZzaG9wLnplbnNob3AuY24vcHJvZHVjdHMvJUU4JTg3JUFBJUU3JTk0JUIxJUU1JThDJUJBLWwtMTklRTUlOEYlQjclRTMlODIlQjUlRTMlODIlQTQlRTMlODIlQkElRTMlODElQkUlRTMlODElQTclRTUlQjElOTUlRTklOTYlOEItJUUzJTgyJUFCJUUzJTgyJUJGJUUzJTgzJUFEJUUzJTgyJUIwJUU2JThFJUIyJUU4JUJDJTg5LSVFMyU4MiVCQiVFMyU4MyU4MyVFMyU4MyU4OCVFMyU4MiVBMiVFMyU4MyU4MyVFMyU4MyU5NyVFNSVBRiVCRSVFNSVCRiU5Qy0lRTMlODIlQkIlRTMlODMlQUMlRTMlODMlQTIlRTMlODMlOEIlRTMlODMlQkMtJUU5JTgwJTlBJUU1JThCJUE0LSVFMyU4MyU4OCVFMyU4MyVBQSVFMyU4MiVBMiVFMyU4MiVCQiVFMyU4MyU4MCVFMyU4MyU5NiVFMyU4MyVBQiVFMyU4MiVBRiVFMyU4MyVBRCVFMyU4MiVCOSVFMyU4MyU4NiVFMyU4MyVCQyVFMyU4MyVBOSVFMyU4MyVCQyVFMyU4MyU4OS0lRTMlODIlQjglRTMlODMlQTMlRTMlODIlQjElRTMlODMlODMlRTMlODMlODhfOGNhZjQ4Y2U%2FcHJldmlldz0x; first_http_referer=https%3A%2F%2Fssfshop.zenshop.cn%2Fadmin%2Fproducts; first_visit_time=1775195861; visit_token=41be25876fa245bb99018d68f7338d89y49l7utp; _bzgigi_vs=E5BE5924-EEF9-E277-6AFC-5F70BB548D0F; PHPSESSID=b08ff5f29b9469e1e92740efef87c09e; _BZGIGI_ua=Mozilla%252F5.0%2520(Windows%2520NT%252010.0%253B%2520Win64%253B%2520x64)%2520AppleWebKit%252F537.36%2520(KHTML%252C%2520like%2520Gecko)%2520Chrome%252F146.0.0.0%2520Safari%252F537.36%2520Edg%252F146.0.0.0; _BZGIGI_pu=https%253A%252F%252Fssfshop.zenshop.cn%252Fadmin%252Fproducts; _BZGIGI_tz=Etc%2FGMT-8; _BZGIGI_ss=2560X1440; _BZGIGI_lang=zh-CN; _BZGIGI_vs=2514X1316; _BZGIGI_dt=2026-04-07%2014%3A48%3A20; theme_id=429104; is_theme_edit=1; acw_tc=9b66b4a617756120379694001e5c7efed3faa08e9cf1c621bbfeb27c77; cdn_sec_tc=9b66b4a617756120379694001e5c7efed3faa08e9cf1c621bbfeb27c77; __stripe_sid=a0f6f277-4a95-4d43-bd6f-c38f108e17f52fc752',
|
|
}
|
|
response = requests.post(f'{self.url}/api/resources/retry', headers=headers, json={'ids':ids})
|
|
print(response.json())
|
|
|
|
def delete_images(ids: list):
|
|
headers = {
|
|
'accept': 'application/json, text/plain, */*',
|
|
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
|
'content-type': 'application/json',
|
|
# 'origin': 'https://ssfshop.zenshop.cn',
|
|
'priority': 'u=1, i',
|
|
# 'referer': 'https://ssfshop.zenshop.cn/admin/resources',
|
|
'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Microsoft Edge";v="146"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'token': self.token,
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0',
|
|
# 'cookie': '__stripe_mid=a8059a05-4d7e-476d-b376-9e54f222efbe3c23c7; _bzgigi_vid=85F94DA2-7BD9-525E-E4A5-8D686E51B2C6; _bzgigi_cvid=EEFE28A2-FDC4-DC54-E76A-2BC1B2929243; utm_source=direct; utm_medium=default; order_utm_history=%5B%7B%22utm_source%22%3A%22direct%22%2C%22utm_medium%22%3A%22default%22%2C%22utm_term%22%3A%22%22%2C%22utm_campaign%22%3A%22%22%2C%22utm_content%22%3A%22%22%2C%22source_device%22%3A%22computer%22%2C%22create_time%22%3A1775195861%2C%22expire_time%22%3A1777787861%7D%5D; landing_page=aHR0cHM6Ly9zc2ZzaG9wLnplbnNob3AuY24vcHJvZHVjdHMvJUU4JTg3JUFBJUU3JTk0JUIxJUU1JThDJUJBLWwtMTklRTUlOEYlQjclRTMlODIlQjUlRTMlODIlQTQlRTMlODIlQkElRTMlODElQkUlRTMlODElQTclRTUlQjElOTUlRTklOTYlOEItJUUzJTgyJUFCJUUzJTgyJUJGJUUzJTgzJUFEJUUzJTgyJUIwJUU2JThFJUIyJUU4JUJDJTg5LSVFMyU4MiVCQiVFMyU4MyU4MyVFMyU4MyU4OCVFMyU4MiVBMiVFMyU4MyU4MyVFMyU4MyU5NyVFNSVBRiVCRSVFNSVCRiU5Qy0lRTMlODIlQkIlRTMlODMlQUMlRTMlODMlQTIlRTMlODMlOEIlRTMlODMlQkMtJUU5JTgwJTlBJUU1JThCJUE0LSVFMyU4MyU4OCVFMyU4MyVBQSVFMyU4MiVBMiVFMyU4MiVCQiVFMyU4MyU4MCVFMyU4MyU5NiVFMyU4MyVBQiVFMyU4MiVBRiVFMyU4MyVBRCVFMyU4MiVCOSVFMyU4MyU4NiVFMyU4MyVCQyVFMyU4MyVBOSVFMyU4MyVCQyVFMyU4MyU4OS0lRTMlODIlQjglRTMlODMlQTMlRTMlODIlQjElRTMlODMlODMlRTMlODMlODhfOGNhZjQ4Y2U%2FcHJldmlldz0x; first_http_referer=https%3A%2F%2Fssfshop.zenshop.cn%2Fadmin%2Fproducts; first_visit_time=1775195861; visit_token=41be25876fa245bb99018d68f7338d89y49l7utp; _bzgigi_vs=E5BE5924-EEF9-E277-6AFC-5F70BB548D0F; PHPSESSID=b08ff5f29b9469e1e92740efef87c09e; _BZGIGI_ua=Mozilla%252F5.0%2520(Windows%2520NT%252010.0%253B%2520Win64%253B%2520x64)%2520AppleWebKit%252F537.36%2520(KHTML%252C%2520like%2520Gecko)%2520Chrome%252F146.0.0.0%2520Safari%252F537.36%2520Edg%252F146.0.0.0; _BZGIGI_pu=https%253A%252F%252Fssfshop.zenshop.cn%252Fadmin%252Fproducts; _BZGIGI_tz=Etc%2FGMT-8; _BZGIGI_ss=2560X1440; _BZGIGI_lang=zh-CN; _BZGIGI_vs=2514X1316; _BZGIGI_dt=2026-04-07%2014%3A48%3A20; theme_id=429104; is_theme_edit=1; acw_tc=9b66b4a617756120379694001e5c7efed3faa08e9cf1c621bbfeb27c77; cdn_sec_tc=9b66b4a617756120379694001e5c7efed3faa08e9cf1c621bbfeb27c77; __stripe_sid=60ef73cf-e5ed-483a-a342-9e581a0387d64df267',
|
|
}
|
|
json_data = {
|
|
'ids': ids,
|
|
'delete_product': 0
|
|
}
|
|
response = requests.delete('https://ssfshop.zenshop.cn/api/resources/batchdelete', headers=headers, json=json_data)
|
|
print(response.json())
|
|
|
|
print('开始检查失败图片')
|
|
image_items = []
|
|
data = get_errors(1)
|
|
page_total = data['paginate']['pageTotal']
|
|
image_items += data['list']
|
|
print(f"1/{page_total}")
|
|
|
|
if page_total > 1:
|
|
for page in range(2, page_total+1):
|
|
ids = []
|
|
data = get_errors(1)
|
|
for item in data['list']:
|
|
ids.append(item['id'])
|
|
if delete:
|
|
delete_images(ids)
|
|
else:
|
|
post_retry(ids)
|
|
page_total = data['paginate']['pageTotal']
|
|
print(f"{page}/{page_total}")
|
|
|
|
# lost_image_urls = []
|
|
# for image_item in image_items:
|
|
# lost_image_urls.append(image_item['remote_url'])
|
|
|
|
# if len(lost_image_urls) > 0:
|
|
# files.save_list('采集失败图片链接.txt', lost_image_urls)
|
|
# print(f"共有: {len(lost_image_urls)} 条失败链接")
|
|
|
|
def get_all_images(self):
|
|
def get_images(page):
|
|
headers = {
|
|
'accept': 'application/json, text/plain, */*',
|
|
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
|
'cache-control': 'no-cache',
|
|
'dnt': '1',
|
|
'pragma': 'no-cache',
|
|
'priority': 'u=1, i',
|
|
# 'referer': 'https://vanuffelenmode.zenshop.cn/admin/resources',
|
|
'sec-ch-ua': '"Not:A-Brand";v="99", "Microsoft Edge";v="145", "Chromium";v="145"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'token': self.token,
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 Edg/145.0.0.0',
|
|
# 'cookie': 'acw_tc=a3b54dab17734824723112557e921e5eb8672de1b4bf2e0bfb7de57fe1; cdn_sec_tc=a3b54dab17734824723112557e921e5eb8672de1b4bf2e0bfb7de57fe1; __stripe_mid=cc09d025-360b-466e-bef4-ba92d045fdc94448e2; __stripe_sid=511d0972-d39d-4aa1-a031-5258db651ad1d4124e; visit_token=9b8172c220d5be292045835470d38951px0lh404',
|
|
}
|
|
|
|
params = {
|
|
'file_name': '',
|
|
'page_type': 'all',
|
|
'page': str(page),
|
|
'pagesize': '600',
|
|
}
|
|
|
|
response = requests.get(f'{self.url}/api/resources', params=params, headers=headers)
|
|
response_data = response.json()
|
|
if response_data['code'] != 0:
|
|
raise Exception(response_data['msg'])
|
|
return response_data['data']
|
|
|
|
print('开始获取图片url')
|
|
image_items = []
|
|
data = get_images(1)
|
|
page_total = data['paginate']['pageTotal']
|
|
image_items += data['list']
|
|
print(f"1/{page_total}")
|
|
|
|
if page_total > 1:
|
|
for page in range(2, page_total+1):
|
|
data = get_images(page)
|
|
image_items += data['list']
|
|
print(f"{page}/{page_total}")
|
|
|
|
image_urls = []
|
|
for image_item in image_items:
|
|
image_urls.append(image_item['remote_url'])
|
|
|
|
if len(image_urls) > 0:
|
|
files.save_list('图片链接.txt', image_urls)
|
|
print(f"共有: {len(image_urls)} 张图片")
|