This commit is contained in:
27942
2025-12-15 14:54:55 +08:00
parent 1739b2d21e
commit 8e10a5ecfc
12 changed files with 381 additions and 7828 deletions

264
bit_tools.py Normal file
View File

@@ -0,0 +1,264 @@
import json
import random
import requests
from peewee import fn
# from models.ips import Ips
# from models.xstart import Xstart
# from models.xtoken import XToken
url = "http://127.0.0.1:54345"
headers = {'Content-Type': 'application/json'}
tg_url = "https://web.telegram.org/a/"
def createBrowser(
groupId=None,
host=None,
port=None,
proxyUserName=None,
proxyPassword=None,
name='google'
): # 创建或者更新窗口,指纹参数 browserFingerPrint 如没有特定需求,只需要指定下内核即可,如果需要更详细的参数,请参考文档
json_data = {
"groupId": groupId, # 分组id
'name': name, # 窗口名称
'remark': '', # 备注
'proxyMethod': 1, # 代理方式 2自定义 3 提取IP
# 代理类型 ['noproxy', 'http', 'https', 'socks5', 'ssh']
'proxyType': 'socks5',
'host': host, # 代理主机EE
'port': port, # 代理端口
'proxyUserName': proxyUserName, # 代理账号
'proxyPassword': proxyPassword, # 代理账号
"browserFingerPrint": { # 指纹对象
'coreVersion': '138' # 内核版本注意win7/win8/winserver 2012 已经不支持112及以上内核了无法打开
}
}
res = requests.post(f"{url}/browser/update",
data=json.dumps(json_data), headers=headers).json()
print(res)
browserId = res['data']['id']
return browserId
def updateBrowser(): # 更新窗口支持批量更新和按需更新ids 传入数组单独更新只传一个id即可只传入需要修改的字段即可比如修改备注具体字段请参考文档browserFingerPrint指纹对象不修改则无需传入
json_data = {'ids': ['93672cf112a044f08b653cab691216f0'],
'remark': '我是一个备注', 'browserFingerPrint': {}}
res = requests.post(f"{url}/browser/update/partial",
data=json.dumps(json_data), headers=headers).json()
print(res)
def openBrowser(id): # 直接指定ID打开窗口也可以使用 createBrowser 方法返回的ID
json_data = {"id": f'{id}', "args": [
# "--disable-application-cache",
# "--disable-cache",
# "--disable-gpu-shader-disk-cache",
# "--media-cache-size=1",
# "--disk-cache-size=1",
# "--incognito"
]}
res = requests.post(f"{url}/browser/open",
data=json.dumps(json_data), headers=headers).json()
print(res)
return res["data"]["http"].split(":")[1]
def closeBrowser(id): # 关闭窗口
json_data = {'id': f'{id}'}
res = requests.post(f"{url}/browser/close",
data=json.dumps(json_data), headers=headers)
return res.json()
def deleteBrowser(id): # 删除窗口
json_data = {'id': f'{id}'}
print(requests.post(f"{url}/browser/delete",
data=json.dumps(json_data), headers=headers).json())
def query_bit_browser(page, page_size):
data = {"page": page, "pageSize": page_size, 'sort': 'asc'}
res = requests.post(f'{url}/browser/list', data=json.dumps(data), headers=headers)
return res.json()["data"]["list"]
def update_proxy_Browser(
id,
host,
port,
proxyType="socks5",
proxyUserName="",
proxyPassword=""
):
json_data = {
"ids": [id],
# "ipCheckService": "ip123in",
"proxyMethod": 2,
"proxyType": proxyType,
"host": host,
"port": port,
"proxyUserName": proxyUserName,
"proxyPassword": proxyPassword
}
res = requests.post(f'{url}/browser/proxy/update', data=json.dumps(json_data), headers=headers)
print(res.json())
return res.json()
def get_group_lists_Browser():
json_data = {
"page": 0,
"pageSize": 100,
"all": True
}
res = requests.post(f'{url}/group/list', data=json.dumps(json_data), headers=headers)
return res.json()["data"]["list"]
def get_browser_lists_Browser(id, page=0):
json_data = {
"groupId": id,
"page": page,
"pageSize": 100
}
res = requests.post(f'{url}/browser/list', data=json.dumps(json_data), headers=headers)
return res.json()["data"]["list"]
def get_group_lists(): # 获取全部分组的信息
# url = "/group/list"
json_data = {
"page": 0,
"pageSize": 100,
"all": True
}
res = requests.post(f'{url}/group/list', data=json.dumps(json_data), headers=headers)
data = {}
for i in res.json()["data"]["list"]:
data[i["groupName"]] = i["id"]
return data
def group_add(groupName):
json_data = {
"groupName": groupName,
"sortNum": 0
}
res = requests.post(f'{url}/group/add', data=json.dumps(json_data), headers=headers)
return res.json()
def browser_detail(id):
json_data = {
"id": id
}
res = requests.post(f'{url}/browser/detail', data=json.dumps(json_data), headers=headers)
return res.json()
def group_update(groupId, browserIds):
# json_data = {
# "groupId": "41notc1202sr8gu5o6emb9ihaqbzbkic",
# "browserIds": ["af25e626167f4870b8f257e697bb4f05", "3baa6e990fee4e839c72722c8dc18019"]
# }
json_data = {
"groupId": groupId,
"browserIds": browserIds
}
res = requests.post(f'{url}/browser/group/update', data=json.dumps(json_data), headers=headers)
return res.json()
if __name__ == '__main__':
print(openBrowser("85c411fc41dc4618bb468cd7768b378c"))
# for i in Xstart.select().where(
# Xstart.x_id.is_null()
# ):
# ips_info = Ips.select().where(Ips.start == 1, Ips.country == "法国").order_by(fn.Rand()).get()
#
# update_proxy_Browser(
# id=i.bit_id,
# host=ips_info.host,
# port=ips_info.port,
# proxyUserName=ips_info.username,
# proxyPassword=ips_info.password
# )
# fz_datas = get_group_lists()
# # fz_datas['推特']
#
# for i in range(10):
# for i in get_browser_lists_Browser(id=fz_datas['推特'], page=i):
# x_start_info = Xstart.get_or_none(
# Xstart.bit_id == i["id"]
# )
#
# if not x_start_info:
# deleteBrowser(id=i["id"])
#
# continue
#
# if x_start_info.start:
# continue
#
# deleteBrowser(id=i["id"])
#
# # x_start_info.delete_instance()
# x_start_info.bit_id = None
# x_start_info.save()
# for i in Xstart.select():
# res = browser_detail(id=i.bit_id)
# print(res)
#
# if not res["success"]:
# i.bit_id = None
# i.save()
# print(browser_detail(id="532651f5330e4caa917e644f9b676b"))
# # 批量修改代理
# for i in Xstart.select():
# update_proxy_Browser(id=i.bit_id, proxyType="http", host="104.168.59.92", port=random.randint(20001, 25000), )
# fz_datas = get_group_lists()
# print(fz_datas)
# bit_id_list = []
# for i in XToken.select().where(XToken.account_start == 2):
# sql_info = Xstart.get_or_none(
# Xstart.x_id == i.id
# )
#
# bit_id_list.append(sql_info.bit_id)
#
# print(len(bit_id_list))
# print(bit_id_list)
#
# print(group_update(fz_datas["西班牙语"], bit_id_list))

BIN
sample_items_1000_api.xlsx Normal file

Binary file not shown.

68
test1.py Normal file
View File

@@ -0,0 +1,68 @@
import requests
cookies = {
'_gcl_au': '1.1.160903024.1765771589',
'_fbp': 'fb.1.1765771589293.17156343366741027',
'SPC_SI': 'BZAdaQAAAABqS1Z6WXpqZyanAgIAAAAANmlWVmIxRGk=',
'SPC_SEC_SI': 'v1-TkRFM3dZV3JTZzZ6d044cNrWZsbGz7FrOk7n5j/+lcH1RTi9xjMCQIwITTeZR8QvYXsEgk626pQSPknCoig03K9NDuhuxThoIOrrvoUcd7U=',
'SPC_F': 'FH9iismqzPwuoLKwTYVcfjItVb7v81v8',
'REC_T_ID': '6eb5612e-d96b-11f0-b326-f245e6c13e73',
'_QPWSDCXHZQA': '62a16587-8e83-4c53-aa85-c9de30dc498e',
'REC7iLP4Q': '7e963205-f641-43f2-9156-9619285e823a',
'SPC_CLIENTID': 'Rkg5aWlzbXF6UHd1xtpcinjinawghdfk',
'AMP_TOKEN': '%24NOT_FOUND',
'_gid': 'GA1.2.1472578244.1765771624',
'SPC_ST': '.djhoWXhkRktPT2hJQjRyTl57XDvOATXWTpn5cv/OUQhBUgjq8u46AY3KB/y7lJdbCyCYNBK8gFo36pR2OWq1L+Y3Ls7EDGsmSawDHX2YuDnfKn27xzEEMuclAQ+0o3XPy6OC3MLve5M/PzOsJhxdg/aXaKq1dTls/3ClVLck53UHThD24v6kdpn2gtXBfuf+gHrIasExw4C2J2yoLHQLPBL5y92yVZoviQVq9SUO9pJX0lAKARgIQ01e+dGlNt97zBF/imaRS8aoEPvoVelDYKqhfTkLe5mlSo8mfiWbn5o=',
'SPC_EC': '.N2ZubWVHTHEyVkpKeW5mY6sm6MI9CsIHamB7B72bmV5LWld+luGn25unbdawUzJoTfgtxq0fxtfoSlTdAHyd+0pVhpGYzzsUUW10L1qv7GK8lrS6ZUiFSHqp/rc8g7GzpIMXiXCQuLLIr1seu7tDA/ZPMkZ89RiqjL7mBjZdRCbT6bQPLA/EnYOhQktOtppb8bpl+/6hFxIk3k31TBnXMGbGMuREh0vV5JAKBSRRf5DWdxV80exxvdGLfpagbchzNCQXA5rwaqbTof39oFoj+CveHunufuL+UIvia8fasss=',
'SPC_U': '1702834893',
'SPC_R_T_ID': 'bHadce/ez6SJ+tE+IiKCjE5TPpgcASERGCskTcB/vOezBnLzll/D5LBlC90+9o6qklX1mIlLtKVI++BkeaWcBmCknetg58rCr4t/vzbFJdxvHR62c+ksDlLrOAnyazeeZcDUDpgzjQstB/RoE2VPgQCXE3dHmzGG9bNo2SE9H2g=',
'SPC_R_T_IV': 'S1VCdHZmb1lxeVM4OTNXcw==',
'SPC_T_ID': 'bHadce/ez6SJ+tE+IiKCjE5TPpgcASERGCskTcB/vOezBnLzll/D5LBlC90+9o6qklX1mIlLtKVI++BkeaWcBmCknetg58rCr4t/vzbFJdxvHR62c+ksDlLrOAnyazeeZcDUDpgzjQstB/RoE2VPgQCXE3dHmzGG9bNo2SE9H2g=',
'SPC_T_IV': 'S1VCdHZmb1lxeVM4OTNXcw==',
'AC_CERT_D': 'U2FsdGVkX1+gNnBtH4ufbKBg87Lddw5jPipvoBhhVaRC6D4JRSc9Cb1RLo80DlUwVNsTQBeYq1wbkUe32B3tO0x6dflXW2U6zFsc7Ts9bZ31PUf7w9e3u3l4HxOVoBsNzwhQTRp0WkdC121uBgCclnsxm0YRiQyG8zNtIP1/tavm0LfGAiv8FgtvT3MjcSVKstLXIE+xRR1L7EFchbZ2HwYYiOkz58o5mjbR6QCqIohb9GdhV5vQwaYPklbq/Huamj5ArAdbRVNm/yR5x5eLyWjbNDwyk+FdIstGaJjEmXRqr1f4LqEl/mm58xcz+1vtfvjmahYO9kjMCTAQO5gYhwjdFZD4MAUZzfnRl3rO6jkzRNYlLI8gj7ik98aISC3ChBUqyv0uLPUSQpOR+P24BQkEViHOMYrn1/OplxBb+ZFPgiAtYArSJMzeI3jsyp8Mm2QqzVms8IVytPfCqHWhOG60E5N9l6hmFFMBLjwbPc58LY/BV3K+SoPjG2DmI+Jv8fDqMdMyJTtvq1ldBMcoHNiw8mkZGHtnwLDETnVwAu7aaBNaoz92FloJPAwPzYZyoxhOCk+O3rgpaFmJlOStRIHdZo+7UNulgoaTk7fqhpbVGUxspqkNQRm4ANLvA3OpXl/hmzE8pFgshGl5dcJFdZXu3jbmJtjieKnBqy9XMdDnumazQZh7+w6WyBir2/yRJiJrUccXbgViMgDLF+ou1dTEPm4vCc2UuuYwFY3DAv0U/9N2awhDJZWOEdGxKqROw5t+pxcOmq4iokiTvUPcaU4HiM+Vsu3iEGIKgOnHZVesez1NZSoTiNNTzK+/7YqxTukXJwhPpOqfUFbJ2KHBGIrLV14WYGz/AZ1AVwa7SZPRn2tK+/8uttRfeekcWSWhsuh+gXpt8uTy5422aNab4xjdvJ8hAXdemqs45kAiBPFkM1VZfJqIRsktpJwBveaP3RDGDYRmElzf43eDotMtBwqQVnd3I/rj+q8sHsqYt4JiwipD1DfEYCFyO20mDjnopT0kIXgUxWmHJNAiEE4Ne80Tf1a6wJEkPM/BCVlIgaK6jOwFlEkdmHGFxLtqnxfNrIxnCsnq1v7w8ta24jSWfunOgkyGSs7UxYM2JP8GXFw=',
'csrftoken': 'Knk2dEeBYJEb8DspHBq4gfTmjSpPPP1h',
'_sapid': 'c1dd610984545e60c480ad0b21993b783d8f20395effe21d108b393a',
'SPC_CDS_CHAT': 'e596cbf9-2c17-4738-be1b-e0e1fc515b68',
'_ga': 'GA1.1.1810227316.1765771613',
'_ga_E1H7XE0312': 'GS2.1.s1765774069$o2$g1$t1765775015$j60$l1$h1732185965',
'shopee_webUnique_ccd': 'L5lFEx%2FDFDYzUvINrlJ5Pg%3D%3D%7C9QclhavIFkcI0Oem%2BujtgnnbW4ii%2FcstFdXtgS0FLF39ScbVxRCq%2BYmKiwgFNqLravvR8e8%2BcLwGi5o%3D%7CGJEd7jwFJ3A%2Fwl2%2B%7C08%7C3',
'ds': '3ee2aa738b7ce9bd5f97f4028605f207',
}
headers = {
'accept': 'application/json',
'accept-language': 'zh-CN,zh;q=0.9,zh-HK;q=0.8,en;q=0.7',
'af-ac-enc-dat': '896dba989bac8389',
'af-ac-enc-sz-token': 'L5lFEx/DFDYzUvINrlJ5Pg==|9QclhavIFkcI0Oem+ujtgnnbW4ii/cstFdXtgS0FLF39ScbVxRCq+YmKiwgFNqLravvR8e8+cLwGi5o=|GJEd7jwFJ3A/wl2+|08|3',
'content-type': 'application/json',
'd-nonptcha-sync': 'AAAG5S4xyW0AAAgAAAmv9+dh4nH11v8ECgN2AAAGqQQKA3YAAAapBAgDeQAABqsEAgN/AAAGrQP8A4YAAAavA/sDiAAABrAD+QOLAAAGsQPvA5YAAAbY',
'priority': 'u=1, i',
'referer': 'https://shopee.tw/product/116309859/26283458480',
'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'sz-token': 'L5lFEx/DFDYzUvINrlJ5Pg==|9QclhavIFkcI0Oem+ujtgnnbW4ii/cstFdXtgS0FLF39ScbVxRCq+YmKiwgFNqLravvR8e8+cLwGi5o=|GJEd7jwFJ3A/wl2+|08|3',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
'x-api-source': 'pc',
'x-csrftoken': 'Knk2dEeBYJEb8DspHBq4gfTmjSpPPP1h',
'x-requested-with': 'XMLHttpRequest',
'x-sap-ri': 'a8963f69cebc3a3cbaa20c30080165aa2b82ffbcd51089630933',
'x-sap-sec': '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',
'x-shopee-language': 'zh-Hant',
'x-sz-sdk-version': '1.12.26',
# 'cookie': '_gcl_au=1.1.160903024.1765771589; _fbp=fb.1.1765771589293.17156343366741027; SPC_SI=BZAdaQAAAABqS1Z6WXpqZyanAgIAAAAANmlWVmIxRGk=; SPC_SEC_SI=v1-TkRFM3dZV3JTZzZ6d044cNrWZsbGz7FrOk7n5j/+lcH1RTi9xjMCQIwITTeZR8QvYXsEgk626pQSPknCoig03K9NDuhuxThoIOrrvoUcd7U=; SPC_F=FH9iismqzPwuoLKwTYVcfjItVb7v81v8; REC_T_ID=6eb5612e-d96b-11f0-b326-f245e6c13e73; _QPWSDCXHZQA=62a16587-8e83-4c53-aa85-c9de30dc498e; REC7iLP4Q=7e963205-f641-43f2-9156-9619285e823a; SPC_CLIENTID=Rkg5aWlzbXF6UHd1xtpcinjinawghdfk; AMP_TOKEN=%24NOT_FOUND; _gid=GA1.2.1472578244.1765771624; SPC_ST=.djhoWXhkRktPT2hJQjRyTl57XDvOATXWTpn5cv/OUQhBUgjq8u46AY3KB/y7lJdbCyCYNBK8gFo36pR2OWq1L+Y3Ls7EDGsmSawDHX2YuDnfKn27xzEEMuclAQ+0o3XPy6OC3MLve5M/PzOsJhxdg/aXaKq1dTls/3ClVLck53UHThD24v6kdpn2gtXBfuf+gHrIasExw4C2J2yoLHQLPBL5y92yVZoviQVq9SUO9pJX0lAKARgIQ01e+dGlNt97zBF/imaRS8aoEPvoVelDYKqhfTkLe5mlSo8mfiWbn5o=; SPC_EC=.N2ZubWVHTHEyVkpKeW5mY6sm6MI9CsIHamB7B72bmV5LWld+luGn25unbdawUzJoTfgtxq0fxtfoSlTdAHyd+0pVhpGYzzsUUW10L1qv7GK8lrS6ZUiFSHqp/rc8g7GzpIMXiXCQuLLIr1seu7tDA/ZPMkZ89RiqjL7mBjZdRCbT6bQPLA/EnYOhQktOtppb8bpl+/6hFxIk3k31TBnXMGbGMuREh0vV5JAKBSRRf5DWdxV80exxvdGLfpagbchzNCQXA5rwaqbTof39oFoj+CveHunufuL+UIvia8fasss=; SPC_U=1702834893; SPC_R_T_ID=bHadce/ez6SJ+tE+IiKCjE5TPpgcASERGCskTcB/vOezBnLzll/D5LBlC90+9o6qklX1mIlLtKVI++BkeaWcBmCknetg58rCr4t/vzbFJdxvHR62c+ksDlLrOAnyazeeZcDUDpgzjQstB/RoE2VPgQCXE3dHmzGG9bNo2SE9H2g=; SPC_R_T_IV=S1VCdHZmb1lxeVM4OTNXcw==; SPC_T_ID=bHadce/ez6SJ+tE+IiKCjE5TPpgcASERGCskTcB/vOezBnLzll/D5LBlC90+9o6qklX1mIlLtKVI++BkeaWcBmCknetg58rCr4t/vzbFJdxvHR62c+ksDlLrOAnyazeeZcDUDpgzjQstB/RoE2VPgQCXE3dHmzGG9bNo2SE9H2g=; SPC_T_IV=S1VCdHZmb1lxeVM4OTNXcw==; AC_CERT_D=U2FsdGVkX1+gNnBtH4ufbKBg87Lddw5jPipvoBhhVaRC6D4JRSc9Cb1RLo80DlUwVNsTQBeYq1wbkUe32B3tO0x6dflXW2U6zFsc7Ts9bZ31PUf7w9e3u3l4HxOVoBsNzwhQTRp0WkdC121uBgCclnsxm0YRiQyG8zNtIP1/tavm0LfGAiv8FgtvT3MjcSVKstLXIE+xRR1L7EFchbZ2HwYYiOkz58o5mjbR6QCqIohb9GdhV5vQwaYPklbq/Huamj5ArAdbRVNm/yR5x5eLyWjbNDwyk+FdIstGaJjEmXRqr1f4LqEl/mm58xcz+1vtfvjmahYO9kjMCTAQO5gYhwjdFZD4MAUZzfnRl3rO6jkzRNYlLI8gj7ik98aISC3ChBUqyv0uLPUSQpOR+P24BQkEViHOMYrn1/OplxBb+ZFPgiAtYArSJMzeI3jsyp8Mm2QqzVms8IVytPfCqHWhOG60E5N9l6hmFFMBLjwbPc58LY/BV3K+SoPjG2DmI+Jv8fDqMdMyJTtvq1ldBMcoHNiw8mkZGHtnwLDETnVwAu7aaBNaoz92FloJPAwPzYZyoxhOCk+O3rgpaFmJlOStRIHdZo+7UNulgoaTk7fqhpbVGUxspqkNQRm4ANLvA3OpXl/hmzE8pFgshGl5dcJFdZXu3jbmJtjieKnBqy9XMdDnumazQZh7+w6WyBir2/yRJiJrUccXbgViMgDLF+ou1dTEPm4vCc2UuuYwFY3DAv0U/9N2awhDJZWOEdGxKqROw5t+pxcOmq4iokiTvUPcaU4HiM+Vsu3iEGIKgOnHZVesez1NZSoTiNNTzK+/7YqxTukXJwhPpOqfUFbJ2KHBGIrLV14WYGz/AZ1AVwa7SZPRn2tK+/8uttRfeekcWSWhsuh+gXpt8uTy5422aNab4xjdvJ8hAXdemqs45kAiBPFkM1VZfJqIRsktpJwBveaP3RDGDYRmElzf43eDotMtBwqQVnd3I/rj+q8sHsqYt4JiwipD1DfEYCFyO20mDjnopT0kIXgUxWmHJNAiEE4Ne80Tf1a6wJEkPM/BCVlIgaK6jOwFlEkdmHGFxLtqnxfNrIxnCsnq1v7w8ta24jSWfunOgkyGSs7UxYM2JP8GXFw=; csrftoken=Knk2dEeBYJEb8DspHBq4gfTmjSpPPP1h; _sapid=c1dd610984545e60c480ad0b21993b783d8f20395effe21d108b393a; SPC_CDS_CHAT=e596cbf9-2c17-4738-be1b-e0e1fc515b68; _ga=GA1.1.1810227316.1765771613; _ga_E1H7XE0312=GS2.1.s1765774069$o2$g1$t1765775015$j60$l1$h1732185965; shopee_webUnique_ccd=L5lFEx%2FDFDYzUvINrlJ5Pg%3D%3D%7C9QclhavIFkcI0Oem%2BujtgnnbW4ii%2FcstFdXtgS0FLF39ScbVxRCq%2BYmKiwgFNqLravvR8e8%2BcLwGi5o%3D%7CGJEd7jwFJ3A%2Fwl2%2B%7C08%7C3; ds=3ee2aa738b7ce9bd5f97f4028605f207',
}
params = {
'item_id': '6144878078',
'shop_id': '37137599',
'tz_offset_in_minutes': '480',
'detail_level': '0',
}
response = requests.get('https://shopee.tw/api/v4/pdp/get_pc', params=params, cookies=cookies, headers=headers)
print(response.json())

View File

@@ -1,10 +1,52 @@
from models.tg_phone_devices import TgPhoneDevices1, TgPhoneDevices
import time
from loguru import *
from urllib.parse import urlparse, parse_qs
import pandas as pd
from DrissionPage import *
if __name__ == '__main__':
for i in TgPhoneDevices1.select():
tg_info = TgPhoneDevices.get_or_none(
phone=i.phone,
)
i.port = tg_info.port
i.save()
co = ChromiumOptions()
co.set_local_port(9999)
page = ChromiumPage(addr_or_opts=co)
# 读取 Excel 文件
excel_file = pd.ExcelFile('sample_items_1000_api.xlsx')
# 获取指定工作表中的数据
df = excel_file.parse('in')
# 读取第一列数据
first_column = df.iloc[:, 0]
# 逐行遍历第一列数据
n = 0
n1 = 0
for value in first_column:
print(value)
# 解析 URL
parsed_url = urlparse(value)
# 提取查询参数部分
query_params = parsed_url.query
# 解析查询参数为字典
param_dict = parse_qs(query_params)
a = time.time()
tab = page.new_tab()
tab.listen.start("shopee.tw/api/v4/pdp/get_pc")
tab.get(f"https://shopee.tw/product/{param_dict['shop_id'][0]}/{param_dict['item_id'][0]}")
res = tab.listen.wait(timeout=15)
print(res.response.body)
if res.response.body.get("data", {}).get("item", {}):
n += 1
n1 += time.time() - a
logger.info(f"成功第{n}个,耗时{time.time() - a}")
logger.success(f"成功第{n}个,一共耗时{n1}")
tab.close()

File diff suppressed because it is too large Load Diff