selenium模拟淘宝登陆
使用selenium打开浏览器,模拟人工进行淘宝的登陆活动可以在网上找到两种解决方案。
第一种方案是打开网站后,通过find_element_by_xpath 依次寻找用户名录入框,密码录入框,登陆按钮点击框。如果有滑块的话,还需要找到滑块,模拟操作滑块移动到右方。
第二种方案是使用pyautogui中的图像匹配功能,需要提前将用户名登陆框,登陆按钮截图作为匹配模板,找到每一部分在屏幕上的位置,使用pyautogui.leftClick 模拟点击屏幕,pyautogui.typewrite(username) 模拟键盘输入,即可。由于pyautogui是屏幕操作,所以必须保证selenium打开的浏览器窗口当前处于活跃状态。
笔者在尝试的时候,使用的是firefox浏览器,在这两种方法里输入密码的时候均出现滑块,而滑块操作代码无效,或许firefox也需要有一些额外的设置,最终还是在Chrome下成功。
# 初始化浏览器if tag == 'Firefox':binary = FirefoxBinary("D:\\Program Files\\firefox\\firefox.exe")self.browser = webdriver.Firefox(firefox_binary=binary)else:options = webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches', ['enable-automation']) self.browser = webdriver.Chrome(options=options)
此处初始化Chrome浏览器时,重要的一点是必须开启开发者模式, 也就是这块options.add_experimental_option('excludeSwitches', ['enable-automation']) ,如果不开启,那么滑块必然会出现,开启后,还没有发现有滑块出现。
第一种方案
self.browser.find_element_by_xpath('//input[@name="fm-login-id"]').send_keys(username)
self.browser.find_element_by_xpath('//input[@name="fm-login-password"]').send_keys(password)
self.browser.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click() # 第一次点击登录按钮
查找用户名录入框,录入用户名,查找密码录入框,录入密码,尝试点击登陆按钮。
第二种方案
# 进入登陆窗口self.browser.get('https://login.taobao.com/member/login.jhtml')# 匹配用户名录入框coords = pyautogui.locateOnScreen('D:\\input.png')if coords is not None:x, y = pyautogui.center(coords)# 点击用户名录入框pyautogui.leftClick(x, y)pyautogui.typewrite(username)pyautogui.press('tab')pyautogui.typewrite(password)# 匹配登陆按钮coords = pyautogui.locateOnScreen('D:\\login.png')if coords is not None:x, y = pyautogui.center(coords)# 点击登陆按钮pyautogui.leftClick(x, y)
先匹配用户名录入框,找到之后模拟点击,输入用户名,随后模拟Tab按钮,切换焦点到密码录入框,再录入密码。随后匹配登陆按钮,模拟点击登陆按钮,即可。
此处需要注意的是pyautogui打开图片时,路径应该采用绝对路径名,且不支持中文。我的python文件是在中文目录下,一开始使用 pyautogui.locateOnScreen('input.png') 提示有错误,应该是无法找到文件。随后换到一个英文路径下,也不行。只有采用一个绝对路径名才不报错。
滑块功能现在还没有尝试成功,留待下次再试。
2021年10月07日
参考以下文章
selenium淘宝登录和滑块破解最新可用
通过selenium+pyautogui模拟登陆淘宝(完美实现)
selenium模拟淘宝登陆相关推荐
- Python selenium模拟淘宝登陆
通过selenium定位到各个元素,通过相关操作(如输入框的输入,按钮的点击等)来模拟人的真实操作流程 流程是通过绕个圈子,用微博账号登陆来绕过淘宝登陆,不过事先需要将微博账号与淘宝账号进行绑定 下面 ...
- Python+Selenium模拟淘宝滑块并爬取商品数据
注:如果侵犯了Alibaba的权益,请联系我删除. 上一篇博客已经完成了模拟淘宝登陆,本节主要记录如何爬取淘宝商品列表页数据,同时如何模拟人的操作完成滑块的验证. 代码如下: #encoding=ut ...
- python模拟淘宝登陆_【Python】selenium模拟淘宝登录
# -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By f ...
- python+selenium+phantomjs 模拟淘宝登陆
一段时间前,微信群里有小伙伴在问如何模拟登陆淘宝.对于这样的需求我很乐意折腾,我也在网上看了一些大神写的,不用第三方组件,"纯模拟"实现的难度太大了,各种参数,可见淘宝安全机制且高 ...
- Java利用selenium模拟淘宝登录
代码实现 import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium ...
- 自学爬虫项目(二)一一利用selenium模拟淘宝登录,爬取商品数据
文章目录 前言 一.明确目标 二.分析过程 三.代码封装 总结 前言 你是否还在为学习Python没有方向而苦恼?快来跟着壹乐一起学习吧!让我们共同进步! 今天我们用selenium与Beautifu ...
- selenium 淘宝登陆购买,基础实现
主要实现基础的淘宝登陆搜索及购买. 利用selenium + chrome,当然,这个还有以下两个问题: 1. 不够稳定,还有些细节可以做 2. 没封装 先实现流程吧 from selenium im ...
- Python使用Selenium实现淘宝网滑块登陆
下载chrome浏览器的对应版本自动化驱动 查看本机安装的chrome浏览器版本 点击设帮助-------->点击关于chrome--------->查看版本信息 进入驱动下载地址,找到对 ...
- python+selenium实现淘宝双十一自动下单
python+selenium实现淘宝双十一自动下单 思路/工具参考我的另一篇文章python+selenium实现京东秒杀脚本 1. 扫码登录版 # !/usr/bin/env python # 2 ...
最新文章
- Error: Invoke-customs are only supported starting with Android O (--min-api 26)
- SQL优化常用方法41
- 删除隐藏版本信息 版本回退_Git系列之-分布式版本控制Git详解
- 关于在linux下搭建VSFTP下匿名不能上传的问题
- 七十九、Springboot 整合 Elasticsearch
- Ubuntu18.04彻底删除MySQL数据库
- 很多人都不知道学了c/c++到底能做什么?让大牛来告诉你............
- hibernater面试一
- C#算法设计查找篇之03-插值查找
- AcWing 蓝桥杯C++ AB组辅导课学习记录(Python,备战蓝桥杯)Day31 - Day60
- 如何提高程序员的键盘使用效率?
- Nginx目录结构、编译参数、状态码概述
- 最优化学习 拟牛顿法(Quasi-Newton Method)
- 小程序登录问题--登录函数getUserInfo()写在app.js中,首次加载无法获取后台处理过的用户的信息,刷新一次后就可以获取的解决
- c语言动态分配输出学生成绩,C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)...
- 梅尔加尼服务器状态,梅尔加尼服务器第二界闪光平原暴力竞走大赛
- mysql餐馆点餐系统_课内资源 - 基于Jsp和MySql的餐厅点餐系统
- Skyline系列软件(综述)
- 工业机器人技术试题_工业机器人技术题库及答案
- Unity3d如何实现UGUI.Text的UV流动效果
热门文章
- 深圳网络信息安全员(NSACE初级)认证招生简章
- 求根公式在python里怎么表达_python求根公式
- 卡塞格伦天线 matlab,(第四章)口径天线.ppt
- 赛灵思MPSOC裸机下的 USB调试实验
- lda主题模型python实现篇_基于LDA主题模型的短文本分类
- 用matlab拟合多元函,matlab 多元函数拟合 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
- 免费的微软认证考试券又双叒叕来了 Microsoft Ignite 2022
- 虚拟主机做app服务器,虚拟主机能装app吗
- WINDOWS程式设计--窗体和消息机制
- 主题网络爬虫研究综述