美文网首页Python
淘宝爬虫 之 登陆验证(二)

淘宝爬虫 之 登陆验证(二)

作者: 煎炼 | 来源:发表于2018-12-19 16:50 被阅读818次

淘宝作为一大电商网站,反爬措施还是相当的完善的,在我的文章中 淘宝爬虫 之 登陆验证(一)是以cookie验证的,这次用selenium验证,用过selenium登陆淘宝的应该知道登陆页面对selenium的检测是很严格的,只要一打开就会被检测到,网上也有说用其他登陆方式登陆的(支付宝登陆),我试过,可行,不过今天说的是正常的账号密码登陆

from seleniumimport webdriver

from selenium.webdriverimport ActionChains

import time

#打开一个浏览器对象

driver = webdriver.Chrome()

#打开淘宝登陆页面

driver.get('https://login.taobao.com/member/login.jhtml')

#模拟点击到账号密码登陆

driver.find_element_by_id("J_Quick2Static").click()

#输入账号密码

driver.find_element_by_id("TPL_username_1").send_keys("账号")

password = driver.find_element_by_id("TPL_password_1").send_keys("密码")

time.sleep(1)

#模拟滑块滑动

slider = driver.find_element_by_xpath("//*[@id='nc_1_n1z']")

# 平行移动鼠标

action = ActionChains(driver)

action.drag_and_drop_by_offset(slider,500,0).perform()

#模拟点击登陆

driver.find_element_by_id("J_SubmitStatic").click()

运行这段代码会出现一个滑块,无论怎么滑,手动滑都会被检测到,因为当你用selenium打开的时候就会被淘宝后端验证出来是个机器,那么如何解决呢?当然是找到淘宝是怎么验证的了,经过在网上查找各种资料(技术大牛还是很多的);在开发者模式下输入window.navigator.webdriver会发现和正常的浏览器打开的有所不同

1-1

1-1就是selenium打开的浏览器,为true,但是正常浏览器打开的并不是true,淘宝应该就是通过这个方法检测selenium的

1-2

正常浏览器打开的是undefined或者false,那么如何修改呢?

下面我说的是一个抓包工具 fiddler,用它将登陆页面的js替换掉,换成我们修改过的js文件,将window.navigator.webdriver的值改变,就可以绕过淘宝检测了

首先找到淘宝登陆页面的js

1-3

将里面的js代码保存起来,在这个保存起来的js代码中写入我们自己的代码

Object.defineProperties(navigator,{

    webdriver:{

        get:() =>false

    }

})

1-4

然后就是替换了,打开我们的fiddler,先运行一下我们刚才无法登陆的代码,在fiddler中找到登陆页面的js,将这个js代码拖动到右边,3的位置就是我们自己js的路径

1-5

替换好js文件之后就可以运行了,就会发现登陆的滑块检测已经不会出现了,,因为滑块不会出现了,所以代码需要改变一下,

from seleniumimport webdriver

import time

#打开一个浏览器对象

driver = webdriver.Chrome()

#打开淘宝登陆页面

driver.get('https://login.taobao.com/member/login.jhtml')

#模拟点击到账号密码登陆

driver.find_element_by_id("J_Quick2Static").click()

#输入账号密码

driver.find_element_by_id("TPL_username_1").send_keys("账号")

password = driver.find_element_by_id("TPL_password_1").send_keys("密码")

time.sleep(1)

#模拟点击登陆

driver.find_element_by_id("J_SubmitStatic").click()

可以登陆成功了,再看一次window.navigator.webdriver,发现它已经变成了false了

1-6

带上selenium自动登陆页面的cookie就可以爬取数据了

相关文章

  • 淘宝爬虫 之 登陆验证(二)

    淘宝作为一大电商网站,反爬措施还是相当的完善的,在我的文章中 淘宝爬虫 之 登陆验证(一)是以cookie验证的,...

  • 淘宝爬虫 之 登陆验证(一)

    淘宝作为一大电商网站,反爬措施还是相当的完善的 输入账号密码,先别着急点击登陆,需要准备一下;开发者模式找到网络,...

  • 淘宝密码加密方式分析,及python实现

    上回说到《分析淘宝登陆对selenium爬虫的封杀方案,反爬虫机制的升级》、《淘宝封杀selenium的ua算法分...

  • 爬虫与滑动验证背后的人工智能博弈

    滑动验证已经成为反爬虫的新战场,重要应用都加入了滑动来防止爬虫的登陆,在几个月前在公众号分享过处理滑动验证的两个核...

  • selenium使用已打开的chrome浏览器绕过验证,亲测可用

    首先说明下这样做的好处:就是你不用验证登陆状态,可以先登陆,再爬虫 1.先打开windows cmd 进入chro...

  • Python开发轻量级爬虫

    1.概述 对于轻量级爬虫: 只抓取静态页面 而对于高级的爬虫,需要考虑的因素就较多,如: 如何模拟登陆 验证码识别...

  • 淘宝APP x-sign

    爬虫淘宝数据都要有sign验证,app端是x-sign。 简单来说pc端的sign验证藏在js里面用token+d...

  • 七麦反爬策略“终极”破解方案

    qimai_spider 七麦网站爬虫 (解决自动化登陆请求、破解请求签名算法、识别登陆验证码) 七麦是一个提供A...

  • 爬虫知乎登陆

    爬虫入门 功能:知乎算是对爬虫比较友好的网站了,但是!现在登陆验证码很恶心,需要点击图中倒立的文字!这让我们这种本...

  • 【python】破解淘宝登陆反爬

    序言 在进行淘宝登陆时,有些时候是需要进行滑动验证或者短信验证的,然而恰恰是如此,阿里对python做了反爬机制,...

网友评论

    本文标题:淘宝爬虫 之 登陆验证(二)

    本文链接:https://www.haomeiwen.com/subject/pevjkqtx.html