Python中使用pyppeteer实现淘宝登录并获取cookies的脚本

大佬可以给出点意见吗?

使用 pyppeteer 淘宝登录


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]})

这个脚本的核心逻辑是:

  1. 启动浏览器并打开淘宝登录页
  2. 等待用户手动完成登录(扫码或密码登录)
  3. 检测登录成功后获取当前页面的所有cookies
  4. 将cookies保存为JSON格式文件

注意几个关键点:

  • 淘宝有反爬机制,完全自动登录比较困难,所以这里采用手动登录方式
  • waitForFunction 等待登录成功的判断条件可能需要根据实际情况调整
  • 获取的cookies包含登录态,可用于后续的爬虫请求
  • 记得安装依赖:pip install pyppeteer

建议: 实际使用时可能需要处理验证码和登录保护机制。

动态背景真的阻碍阅读

是的,python 里叫做 pyppeteer

动态背景真的影响阅读

现在没有了

结束时似乎会报错 “OSError: Unable to remove Temporary User Data”

可以正常登录获取 Cookies 吗

一般情况可以,有时会在登录确定按钮那里报一下错,似乎是按了’enter’之后,无法再点击的原因

嗯嗯,有错误重试吧

移动端阅读体验 emmm 难以言表 https://i.loli.net/2019/02/19/5c6b5e4fdd40c.jpg

time sleep 是同步阻塞,pypp 是异步。

回到顶部