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

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

from selenium import webdriver

from selenium.webdriver import 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会发现selenium打开的浏览器和正常的浏览器打开的有所不同。

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就可以爬取数据了

获取cookies后要转换到相应的字典格式,才能正常访问,

需要cookies中的name和value属性再组成一个cooies字典,然后requests.get带上cookies就可以正常请求页面了


纯代码解决模式,建议多种方法一起用

参考一:https://www.cnblogs.com/cloudbird/p/10524611.html

设置开发者模式

options = webdriver.ChromeOptions()

# 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium

options.add_experimental_option('excludeSwitches', ['enable-automation'])

driver = webdriver.Chrome(options=options)

如果不行了,想办法改一下chromedriver源代码

参考二:https://www.jianshu.com/p/368be2cc6ca1

最后浏览器仍然存在问题的话

driver.execute_script('Object.defineProperties(navigator,{webdriver:{get:()=>false}})')

修改浏览器的webdriver

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容