在启动 flask 时,通过 playwright = sync_playwright().start() ,playwright 只能被全局实例化一次。 导致这个服务只能为一个账号提供参数生成服务。
import requests
from xhs import XhsClient
def sign(uri, data=None, a1="", web_session=""):
# 填写自己的 flask 签名服务端口地址
res = requests.post("http://127.0.0.1:5006",
json={"uri": uri, "data": data, "a1": a1, "web_session": web_session})
signs = res.json()
return {
"x-s": signs["x-s"],
"x-t": signs["x-t"]
}
def run(phone, cookie):
# 实例化小红书客户端
xhs_client = XhsClient(cookie, sign=sign)
note_info = xhs_client.get_note_by_id("63db8819000000001a01ead1")
print(note_info)
if __name__ == '__main__':
cookie_1 = '''abRequestId=1; a1=18a4fb739bfi5fv56sf2afk6abyu0vzs146xvegob50000303745; webId=6cca84a5b1403b5bf6c91116bfc6cc0e; gid=yY04iDWqi8ydyY04iDWqj4dkDi32ih2KMiJ0KlDiTK0DvC2878huMh888q8qW428KiSSyd0J; webBuild=3.7.1; xsecappid=xhs-pc-web; web_session=030037a3c2c32f7f4ea717d189234a7620827d; websectiga=cffd9dcea65962b05ab048ac76962acee933d26157113bb213105a116241fa6c; sec_poison_id=c9818550-d81c-48c2-a28e-4d44a15efd38'''
cookie_2 = '''imestamp2=166892735640546fac749a852dbc5491b1bce6bf3116f372b149e46ea126eea; timestamp2.sig=e6AlCiNVwsBa0vp8V7_-NlwkR4FNCYUxm8WvibiTqxg; smidV2=202211201455567df56e0e34e99881500da7e02dd59ddc00bfe477f456168a0; gid.ss=gSMQ9UOnDuZwH2oRGJG6BW6e4grs67TaYpnrW+8Wmd3BXEQ7tNY/0XN700Ebb+IN; xhsTrackerId=73749829-fb1c-4f59-8017-f401f1ef1f95; xhsTrackerId.sig=BfS4OY4--lw8f_3iEF2V5K83Qy8bCKOeIeJG1D2-ZZw; xsecappid=xhs-pc-web; a1=186056ada1a89mvl181dbjb8arvhnl4oy26cw5vxs50000249889; webId=2b0dc450f3eea2de6a1460b70f06983c; gid=yYK82K0ffWvJyYK82K0f0J2hy0Yj6h1yYyfDKCMVDY0FhS28xI14lE888J4jYYj8fY0Y2YK2; gid.sign=IvHoU2YKjJwV3p71N5/Jc1tbZ3k=; abRequestId=2b0dc450f3eea2de6a1460b70f06983c; websectiga=10f9a40ba454a07755a08f27ef8194c53637eba4551cf9751c009d9afb564467; sec_poison_id=d4fa3381-179d-41cc-ac42-555de878e0b8; cache_feeds=[]; web_session=0400698de7e997088ffbd819c4364b0f707729; webBuild=2.11.10'''
accounts = [
{"name": "user1", "phone": "1562604xxxx", "cookie": cookie_2},
{"name": "user2", "phone": "1762973xxxx", "cookie": cookie_1},
]
for account in accounts:
name = account.get("name")
phone = account.get("phone")
cookie = account.get("cookie")
print(name, phone)
run(phone, cookie)