我们要做的,就是将这一串字符串进行修改,怎么修改呢?前面的$cdc_
不变,后面的随便修改成任意的字符,但是一定要注意的是:
字符的数量必须和原来的保持一致!!!
字符的数量必须和原来的保持一致!!!
字符的数量必须和原来的保持一致!!!
有小伙伴会有疑问哈,一个exe二进制文件怎么修改呢?可以用EditPlus
或者vim
,打开文件后,可以搜索$cdc
就可以找到了,除了key
的值修改,其他任何地方都不要进行任何修改,否则一定会出现问题。另外说一句,为了保险起见,最好先把之前的chromedriver.exe
文件做个备份,即使新修改的文件有问题,也能及时的恢复。
在修改完后,双击这个文件,如果能打开一个终端,并且不会自己关闭,说明是修改成功,否则就是修改失败!
window.navigator.webdriver
属性值:这个只能在爬虫代码中修改了,在selenium
请求完页面后,然后立马执行一段js
代码,将这个属性值设置为false
。代码如下:
# 打开淘宝登录页面driver.get("https://login.taobao.com/member/login.jhtml?spm=a21bo.2017.754894437.1.5af911d9q07jcU&f=top&redirectURL=https%3A%2F%2Fwww.taobao.com%2F")# 定义js代码script = "Object.defineProperty(navigator,'webdriver',{get: ()=> false,});"# 执行js代码driver.execute_script(script)
这两个步骤都修改完后,基本上淘宝服务器就识别不出是selenium在驱动Chrome了,这时候就可以进行登录了。但是登录过程中,有可能会出现滑块验证码:
这时候还需要进行滑块验证码的破解,其实淘宝的滑块验证码破解非常简单,他都不需要你模拟人的速度去滑,直接让代码从左边拉动到右边就可以。这里我们用selenium的ActionChains行为链来实现。代码如下:
try: # 找到滑块
slider = driver.find_element_by_xpath("//span[contains(@class, 'btn_slide')]") # 判断滑块是否可见
if slider.is_displayed(): # 点击并且不松开鼠标
ActionChains(driver).click_and_hold(on_element=slider).perform() # 往右边移动258个位置
ActionChains(driver).move_by_offset(xoffset=258, yoffset=0).perform() # 松开鼠标
ActionChains(driver).pause(0.5).release().perform()except: pass
至此,淘宝的模拟登陆,就已经做完了。在本帖子下随便回复,即可领取完整代码: