ggrg
This commit is contained in:
264
bit_tools.py
Normal file
264
bit_tools.py
Normal 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
BIN
sample_items_1000_api.xlsx
Normal file
Binary file not shown.
68
test1.py
Normal file
68
test1.py
Normal 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())
|
||||
56
test111.py
56
test111.py
@@ -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()
|
||||
|
||||
7821
wallet_log.log
7821
wallet_log.log
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user