Python中如何模拟淘宝登录?
有人做过模拟淘宝登录吗?最近想模拟登录淘宝联盟, 抓取订单信息,但是一直卡在登录这块。
我用 selenium + chromedriver 模拟登录操作, 但是每次都会显示验证码滑块, 模拟滑块滑过去的操作,就一直提示错误,要我刷新。一直卡在这个步骤。即便我用鼠标自己去操作滑块,也仍然会提示我出现错误,要我刷新。
但是如果我用浏览器正常打开,是不会有滑块出现的。
我觉得是 selenium + chromedriver 一开始进入网页就被识别成爬虫了。
有没有大佬有解决方案
Python中如何模拟淘宝登录?
这个知乎上有讨论
从爆栈网上其他人的答案来看 淘宝的却会检查自动化防范
比如识别$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')
重要说明:
- 淘宝有很强的反爬机制,可能需要处理滑动验证码
- 实际参数名可能会变化,需要实时分析页面
- 建议使用Selenium处理复杂的验证码场景
- 注意遵守网站的使用条款
总结: 淘宝登录比较复杂,建议先用浏览器开发者工具分析登录流程。
上次看到一个帖子,网站也是用了 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

