selenium跳过webdriver检测并模拟登录淘宝


Posted in Python onJune 12, 2019

简介

模拟登录淘宝已经不是一件新鲜的事情了,过去我曾经使用get/post方式进行爬虫,同时也加入IP代理池进行跳过检验,但随着大型网站的升级,采取该策略比较难实现了。因为你使用get/post方式进行爬取数据,会提示需要登录,而登录又是一大难题,需要滑动验证码验证。当你想使用IP代理池进行跳过检验时,发现登录时需要手机短信验证码验证,由此可以知道旧的全自动爬取数据对于大型网站比较困难了。

selenium是一款优秀的WEB自动化测试工具,所以现在采用selenium进行半自动化爬取数据,支持模拟登录淘宝和自动处理滑动验证码。

编写思路

由于现在大型网站对selenium工具进行检测,若检测到selenium,则判定为机器人,访问被拒绝。所以第一步是要防止被检测出为机器人,如何防止被检测到呢?当使用selenium进行自动化操作时,在chrome浏览器中的consloe中输入windows.navigator.webdriver会发现结果为Ture,而正常使用浏览器的时候该值为False。所以我们将windows.navigator.webdriver进行屏蔽。

在代码中添加:

options = webdriver.ChromeOptions()
  # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
  options.add_experimental_option('excludeSwitches', ['enable-automation']) 
  self.browser = webdriver.Chrome(executable_path=chromedriver_path, options=options)

同时,为了加快爬取速度,我们将浏览器模式设置为不加载图片,在代码中添加:

options = webdriver.ChromeOptions()
  # 不加载图片,加快访问速度
  options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})

至此,关键的步骤我们已经懂了,剩下的就是编写代码的事情了。在给定的例子中,需要你对html、css有一定了解。
比如存在以下代码:

self.browser.find_element_by_xpath('//*[@class="btn_tip"]/a/span').click()
  taobao_name = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.site-nav-bd > ul.site-nav-bd-l > li#J_SiteNavLogin > div.site-nav-menu-hd > div.site-nav-user > a.site-nav-login-info-nick ')))
  print(taobao_name.text)

第1行代码指的是从根目录(//)开始寻找任意(*)一个class名为btn_tip的元素,并找到btn_tip的子元素a标签中的子元素span

第2行代码指的是等待某个CSS元素出现,否则代码停留在这里一直检测。以.开头的在CSS中表示类名(class),以#开头的在CSS中表示ID名(id)。A > B,指的是A的子元素B。所以这行代码可以理解为寻找A的子元素B的子元素C的子元素D的子元素E出现,否则一直在这里检测。

第3行代码指的是打印某个元素的文本内容

使用教程

点击这里下载下载chrome浏览器

查看chrome浏览器的版本号,点击这里下载对应版本号的chromedriver驱动

pip安装下列包

[x] pip install selenium

点击这里登录微博,并通过微博绑定淘宝账号密码

在main中填写chromedriver的绝对路径

在main中填写微博账号密码

#改成你的chromedriver的完整路径地址
 chromedriver_path = "/Users/bird/Desktop/chromedriver.exe" 
 #改成你的微博账号
 weibo_username = "改成你的微博账号"
 #改成你的微博密码
 weibo_password = "改成你的微博密码"

演示图片

selenium跳过webdriver检测并模拟登录淘宝

源代码

项目源代码在GitHub仓库

项目持续更新,欢迎您star本项目

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木

Python 相关文章推荐
Python进行数据提取的方法总结
Aug 22 Python
Python随机读取文件实现实例
May 25 Python
Python实现曲线点抽稀算法的示例
Oct 12 Python
python机器学习理论与实战(二)决策树
Jan 19 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
python 通过xml获取测试节点和属性的实例
Mar 31 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
python动态视频下载器的实现方法
Sep 16 Python
Django实现WebSSH操作物理机或虚拟机的方法
Nov 06 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 Python
windows下python安装pip方法详解
Feb 10 Python
python怎么自定义捕获错误
Jun 29 Python
python3.4 将16进制转成字符串的实例
Jun 12 #Python
python binascii 进制转换实例
Jun 12 #Python
Python3 实现串口两进程同时读写
Jun 12 #Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 #Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 #Python
对Python 简单串口收发GUI界面的实例详解
Jun 12 #Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 #Python
You might like
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
python基础教程项目三之万能的XML
2018/04/02 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
python如何输出反斜杠
2020/06/18 Python
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
家居饰品店创业计划书
2014/01/31 职场文书
家长会演讲稿
2014/04/26 职场文书
上课随便讲话检讨书
2014/09/12 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
会计求职自荐信范文
2015/03/04 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技