Python中使用pyppeteer实现淘宝登录并获取cookies的脚本
大佬可以给出点意见吗?
Python中使用pyppeteer实现淘宝登录并获取cookies的脚本
14 回复
puppeteer ?
import asyncio
from pyppeteer import launch
import json
async def get_taobao_cookies():
# 启动浏览器
browser = await launch(
headless=False, # 显示浏览器窗口便于调试
args=['--no-sandbox', '--disable-setuid-sandbox']
)
try:
page = await browser.newPage()
# 设置视口大小
await page.setViewport({'width': 1366, 'height': 768})
# 导航到淘宝登录页
await page.goto('https://login.taobao.com/')
print('请手动完成登录...')
# 等待登录成功(检测URL变化或特定元素出现)
# 这里等待页面跳转到淘宝首页
await page.waitForFunction(
'window.location.href.includes("taobao.com") && !window.location.href.includes("login")',
timeout=120000 # 2分钟超时
)
print('登录成功!正在获取cookies...')
# 获取cookies
cookies = await page.cookies()
# 格式化cookies为字典
cookies_dict = {}
for cookie in cookies:
cookies_dict[cookie['name']] = cookie['value']
# 保存到文件
with open('taobao_cookies.json', 'w', encoding='utf-8') as f:
json.dump(cookies_dict, f, ensure_ascii=False, indent=2)
print(f'已获取 {len(cookies)} 个cookies,并保存到 taobao_cookies.json')
return cookies_dict
finally:
# 关闭浏览器
await browser.close()
# 运行函数
if __name__ == '__main__':
cookies = asyncio.get_event_loop().run_until_complete(get_taobao_cookies())
print('主要cookies:', {k: v for k, v in list(cookies.items())[:5]})
这个脚本的核心逻辑是:
- 启动浏览器并打开淘宝登录页
- 等待用户手动完成登录(扫码或密码登录)
- 检测登录成功后获取当前页面的所有cookies
- 将cookies保存为JSON格式文件
注意几个关键点:
- 淘宝有反爬机制,完全自动登录比较困难,所以这里采用手动登录方式
waitForFunction等待登录成功的判断条件可能需要根据实际情况调整- 获取的cookies包含登录态,可用于后续的爬虫请求
- 记得安装依赖:
pip install pyppeteer
建议: 实际使用时可能需要处理验证码和登录保护机制。
动态背景真的阻碍阅读
是的,python 里叫做 pyppeteer
sry
动态背景真的影响阅读
sry
现在没有了
结束时似乎会报错 “OSError: Unable to remove Temporary User Data”
可以正常登录获取 Cookies 吗
一般情况可以,有时会在登录确定按钮那里报一下错,似乎是按了’enter’之后,无法再点击的原因
嗯嗯,有错误重试吧
移动端阅读体验 emmm 难以言表 https://i.loli.net/2019/02/19/5c6b5e4fdd40c.jpg
time sleep 是同步阻塞,pypp 是异步。

