Python中如何模拟淘宝登录?

有人做过模拟淘宝登录吗?最近想模拟登录淘宝联盟, 抓取订单信息,但是一直卡在登录这块。

我用 selenium + chromedriver 模拟登录操作, 但是每次都会显示验证码滑块, 模拟滑块滑过去的操作,就一直提示错误,要我刷新。一直卡在这个步骤。即便我用鼠标自己去操作滑块,也仍然会提示我出现错误,要我刷新。

但是如果我用浏览器正常打开,是不会有滑块出现的。

我觉得是 selenium + chromedriver 一开始进入网页就被识别成爬虫了。

有没有大佬有解决方案


Python中如何模拟淘宝登录?

34 回复

这个知乎上有讨论
从爆栈网上其他人的答案来看 淘宝的却会检查自动化防范
比如识别$cdc_asdjflasutopfhvcZLmcfl_、webdriver 这些关键字
参考 https://stackoverflow.com/questions/33225947/can-a-website-detect-when-you-are-using-selenium-with-chromedriver
这个 cdc 我以为是个乱码 看上去就是这么检测的


要模拟淘宝登录,你得处理几个关键点:登录页面、验证码、动态参数和会话保持。淘宝的登录流程比较复杂,涉及到很多动态生成的参数和反爬机制。

这里给你一个基础思路和代码框架,但要注意淘宝的反爬机制很强,可能需要处理滑动验证码等复杂情况:

import requests
from bs4 import BeautifulSoup
import re

class TaobaoLogin:
    def __init__(self):
        self.session = requests.Session()
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
        }
        
    def get_login_page(self):
        """获取登录页面,提取必要的参数"""
        login_url = 'https://login.taobao.com/member/login.jhtml'
        response = self.session.get(login_url, headers=self.headers)
        
        # 提取表单需要的参数
        soup = BeautifulSoup(response.text, 'html.parser')
        
        # 淘宝会有很多动态参数,比如umidToken、ua等
        # 这里需要根据实际页面结构提取
        params = {
            'loginId': '',
            'password2': '',
            'keepLogin': 'false',
            'ua': '',
            'umidToken': '',
            'screenPixel': '1920x1080',
            'navlanguage': 'zh-CN',
            'navUserAgent': self.headers['User-Agent'],
            'navPlatform': 'Win32'
        }
        
        # 查找隐藏的表单字段
        hidden_inputs = soup.find_all('input', {'type': 'hidden'})
        for input_tag in hidden_inputs:
            if input_tag.get('name'):
                params[input_tag.get('name')] = input_tag.get('value', '')
                
        return params
    
    def login(self, username, password):
        """执行登录"""
        # 先获取登录页面参数
        login_params = self.get_login_page()
        
        # 设置用户名密码
        login_params['loginId'] = username
        login_params['password2'] = password
        
        # 登录接口
        login_api = 'https://login.taobao.com/member/login.jhtml'
        
        try:
            response = self.session.post(login_api, data=login_params, headers=self.headers)
            
            # 检查是否登录成功
            if 'redirect_url' in response.text or '登录成功' in response.text:
                print("登录成功")
                return True
            else:
                print("登录失败")
                return False
                
        except Exception as e:
            print(f"登录出错: {e}")
            return False

# 使用示例
if __name__ == '__main__':
    login = TaobaoLogin()
    # 注意:实际使用时需要处理验证码
    # login.login('your_username', 'your_password')

重要说明:

  1. 淘宝有很强的反爬机制,可能需要处理滑动验证码
  2. 实际参数名可能会变化,需要实时分析页面
  3. 建议使用Selenium处理复杂的验证码场景
  4. 注意遵守网站的使用条款

总结: 淘宝登录比较复杂,建议先用浏览器开发者工具分析登录流程。

上次看到一个帖子,网站也是用了 webdriver 关键字屏蔽,好像需要自己修改后再编译才能去除。

提供基于 http/s 请求的淘宝、天猫、支付宝登录方案,requests 实现,可用于生产环境

笨,登陆的时候用 Autoit 啊,进去了再用 selenium.

别说模拟登陆,我正常登陆都登陆不上去,过不去滑块验证,不知道怎么就把我识别为机器人了。

正常登录可以呀, 我正常打开 chrome 一切正常。

+1
me2,虚拟机 ie 进不去,但 host(linux) chromium 则可以

既然登录可以检测,你使用 selenium 一样可以检测,治标不治本。

肯定大部分人都可以正常登录,但是我手动都登录不上去,淘宝的验证方法肯定是有些问题。

改一下浏览器头?不太确定这个原理。另外推荐 Puppeteer。

4 楼靠谱
slenium 一进去就被识别为爬虫了,过不了的。

直接调订单接口就是了。。。百度搜一下 taobao.tbk.sc.order.get

这个要拥有高级权限才可以调用, 行不通的

反正最简单的浏览器油猴脚本完全可以解决需求。

#13 搜一下再说。

兄弟有什么直说呀, 官方这个 api 是要有高级权限才提供的

而且以前似乎登录一次,你只要一直刷新,接近于使用,几乎不会掉出去,但是现在似乎有事没事踢出去,过几分钟就得重新登录一次,烦人的很

除了这个,我记得以前还要你从下面的图片里选出你曾经购买过的物品…

之前做过,登录部分要手动过验证,自动化总是出问题。。。然后加个微信告警通知,需要登录的时候提醒我连上去登录一下。。。




我目前在淘宝联盟的订单抓取, 但是 50 分钟登录状态就过期了。 不知道有没有什么好方法。
手动扫码登录肯定是不行的, 不可能人工 24 小时都在扫

#20 不知道用按键精灵之类的模拟鼠标点点点,能不能保持住登录状态

现在登录必须得选择已经购买的商品才行吧

1.挂阿里旺旺获取 ie 里面的插件拿 cookie
2.调用订单接口,目前工具商已经有部分不完美的接口放出
3.把我加入特别关注

我登上去过 selenium 用的微博账号

会跳滑块 但是能登陆 是个淘宝的小问题吧

不行, 我试过了,50 分钟之后必定要重新登录

你指的是 window 版的阿里旺旺吗

是的,阿里旺旺会往 ie 里面插快捷登录

xposed 去 hook 淘宝自动扫码 怎么弄的?

请问这个有什么特别的地方吗?百度了一圈,又在 top.api 的基础包里查看了,没发现这个权限啊。还请兄弟不吝赐教啊

还是不太明白,你是怎么解决的?求指导一下

用 28 楼说的方法吧。 我之前用 xposed 插件去自动扫码比较麻烦。

"挂阿里旺旺获取 ie 里面的插件拿 cookie"这句是什么意思?在 IE 上登录阿里旺旺,什么插件?@caibou

回到顶部