爬虫入门基础-Selenium反爬(taobao)

2023-10-27

1、淘宝反爬
淘宝的反爬机制是非常完善的,在用selenium登陆淘宝的时候发现淘宝能检测到并弹出滑块,然后无论怎么滑动都通过不了,在经过一番搜索后发现很多网站对selenium都有检测机制,如检测是否存在特有标识 $cdc_asdjflasutopfhvcZLmcfl 、navigator.webdriver等。根据这条线索,可以在淘宝的js里找到了相关的检测代码:

在控制台下输入window.navigator.webdriver会发现和正常的浏览器打开的有所不同 
2、修改selenium
如果浏览器是正常打开的话,navigator.webdriver大的值应该是undefined或者false,如果为true说明能检测到selenium
设置开发者模式
此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
from selenium.webdriver import ChromeOptions
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])#开启实验性功能
browser=webdriver.Chrome(options=option)
# 修改get方法
script = '''
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
'''
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
修改浏览器的webdriver
原因发现以后怎么去解决这个问题就比较头疼了,针对这个问题的两个解决方案,编辑chromedriver发现cdc_asdjflasutopfhvcZLmcfl是chromedriver里面的一个变量名,我们只需要将这个变量名改成其他的就好了,变量名修改教程在《Can a website detect when you are using selenium with chromedriver?》
Mac版本的可以通过如下方法将 cdc_ 替换为 dog_
perl -pi -e 's/cdc_/dog_/g' /path/to/chromedriver
//替换完成后查找下,如果查找不到说明替换成功了
perl -ne 'while(/cdc_/g){print "$&\n";}' /path/to/chromedriver
Windows或者Linux版本可以利用Vim将 cdc_ 替换为 dog_
vim /path/to/chromedriver
Mac和win已经修改好的最新版Chromedriver

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬虫入门基础-Selenium反爬(taobao) 的相关文章

  • mcu调试之日志格式化输出的一种方法

    简介 在日后的维护过程中也是很宝贵的东西 怎么能说删除就删除呢 这里提供日志格式化输出的一种方式 主要用于平时调试 那些调试信息是那么的宝贵 代码示例 include
  • 填充书架

    leetCode 1105 填充书架 附近的家居城促销 你买回了一直心仪的可调节书架 打算把自己的书都整理到新的书架上 你把要摆放的书books都整理好 叠成一摞 从上往下 第i本书的厚度为books i 0 高度为books i 1 按顺
  • 【OpenCV】 人脸识别

    目录 一 前言 二 人脸识别案例 实现步骤及完整代码 步骤1 灰度化处理 步骤2 将灰度图再次进行 行列压缩 步骤3 直方图均值化 步骤4 使用模型 对每一个像素点遍历 图像甄别 人脸识别案例 源码分享 结果测试 可对人脸框选识别 三 车辆
  • Oracle内存管理PGA详解

    当用户进程连接到数据库并创建一个对应的会话时 Oracle服务进程会为这个用户专门设置一个PGA区 用来存储这个用户会话的相关内容 当这个用户会话终止时 系统会自动释放这个PGA区所占用的内存 这个PGA区对于数据库的性能有比较大的影响 特
  • CCS:GEL文件

    gel文件的应用 GEL文件与CMD文件 GEL文件的功能同cmd的功能基本相同 用于初始化DSP 但它的功能比cmd的功能有所增强 GEL在CCS下有一个菜单 可以根据DSP的对象不同 设置不同的初始化程序 GEL 通用扩展语言 无类型语
  • 操作系统_05_调度算法(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 进程调度 调度算法的评价指标 CPU 利用率 确保 CPU 是始终匆
  • vue实现一个购物车全功能

    效果图 1 静态代码结构渲染 div class app container div class banner box img src http autumnfish cn static fruit jpg alt div div clas
  • SpringMVC注解式控制器的数据验证、类型转换及格式化

    7 1 简介 在编写可视化界面项目时 我们通常需要对数据进行类型转换 验证及格式化 一 在Spring3之前 我们使用如下架构进行类型转换 验证及格式化 流程 类型转换 首先调用PropertyEditor的setAsText String
  • win10计算机分盘怎么设置密码,Win10如何限制磁盘分区被访问 Win10自带磁盘加密功能BitLocker在哪里...

    Win10系统有EFS这个文件加密功能 也自带磁盘加密功能 能让保存在磁盘里的文件上锁 还能给U盘加锁 这个磁盘分区加密功能就是BitLocker驱动器加密 BitLocker驱动器加密是设备加锁工具 防止因为计算机物理丢失导致数据泄露 有
  • ES 查询语句总结(2)内嵌对象查询

    背景 今年写了一个数据中心的项目 其中有相当一部分的数据查询 用的是ES来做的 涉及到dsl的查询语句 从最开始的简单查询 到后面的复杂的查询 逐步掌握了ES的常用写法 现在总结一下 文章内的称呼 没有按照ES的官方称呼 例如sql那边的表
  • python爬虫四:xpath的安装使用以及lxml模块

    1 xpath的介绍 1 1基本概念 XPath XML Path Language 是一种XML的查询语言 他能在XML树状结构中寻找节点 XPath 用于在 XML 文档中通过元素和属性进行导航 xml是一种标记语法的文本格式 xpat
  • 未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)

    ICode联盟 项目中 App Code 文件夹中的类的命名空间 在添加的页面的 using XXXX 时 提示 未能找到类型或命名空间名称 XXXX 是否缺少 using 指令或程序集引用 说明要引用的这个类文件的 生成操作 属性没有选择
  • Java中的网络编程

    目录 一 网络编程的概述 二 网络模型 三 网络模型三要素 四 TCP协议与编程 4 1TCP协议的三次 握手模型 4 2TCP协议的四次挥手 五 UDP协议 5 1UDP协议的概念 5 2UDP协议 的代码实现 一 网络编程的概述 网络编
  • 设计模式-享元设计模式

    文章目录 享元模式的核心概念 享元模式的实现 享元模式的使用场景 享元模式优缺点 享元模式的核心概念 享元模式旨在通过共享尽可能多的可复用对象来减少内存和性能开销 它的核心思想是将对象分为两部分 内部状态 Intrinsic State 和
  • export in “node_modules/pinia/node_modules/vue-demi/lib/index.mjs“ for import “hasInjectionContext“

    突然遇到一个问题 No matching export in node modules pinia node modules vue demi lib index mjs for import hasInjectionContext 解决方

随机推荐

  • maven项目添加log4j2

    1 在pom xml中增加log4j2的依赖
  • python如何跳出函数,又如何退出主程序呢?

    跳出函数 可以通过return break continue来跳出函数 退出范围从大到小 可以通过查看下方代码理解 return 直接返回函数 所有该函数体内的代码 包括循环体 都不会再执行 实例如下方代码 运行结果为 123 gt 是列表
  • 应用Matlab对学生成绩excel表格进行统计分类

    今天被任命了一项任务 就是将本科生C 课的成绩进行统计 首先从大工慕课网上把学生的每周成绩Excel表下载下来 然后将自己所属班级的学生成绩登记到自己班上 由于一个班有一百多号学生 而且C 课 课时很长 有十来周的作业 因此立马想到把这个重
  • sql计算字符串类型是时间差

    需要用MySQL计算时间差 使用TIMESTAMPDIFF DATEDIFF 记录一下实验结果 1 默认计算天数 select datediff 2020 09 08 23 59 00 2020 09 10 00 00 00 select
  • 全国计算机vfp是什么,计算机二级VFP数据库简介

    计算机二级VFP数据库简介 引导语 数据库是按照数据结构来组织 存储和管理数据的仓库 以下是百分网小编分享给大家的计算机二级VFP数据库简介 欢迎阅读 一 什么是数据库 我们举个例子来说明这个问题 每个人都有很多亲戚和朋友 为了保持与他们的
  • 微信小程序开发者工具详解

    一 微信小程序web开发工具下载地址 1 1 在微信公众平台 小程序里边去下载开发工具下载地址 1 2 下载后安装一下就可以使用了 二 创建项目 2 1 微信小程序web开发工具需要扫码登陆 所以必须先绑定开发者才可以 2 2 已经绑定的开
  • windows测试工具—SNMP Server测试工具

    概述 告警专项测试时需要在第三方管理软件上查看阵列的故障告警是否正确上报显示及恢复 因此本文档总结采用的第三方管理软件MIB Browser软件的安装 配置 和阵列连接后在MIB Browser上怎么查看告警等内容 以指导进行告警专项测试的
  • java集合知识点汇总

    集合和数组的区别 数组只能存放基本数据类型和引用类型 集合只能存放引用类型 数组是固定长度 集合是可变长度 集合框架API Collection List ArrayList Vector LinkedList Set HashSet Li
  • 变长模板:进阶

    在C 11中 标准定义了7种参数包可以展开的位置 表达式 初始化列表 基类描述列表 类成员初始化列表 模板参数列表 通用属性列表 lambda函数的捕捉列表 语言的其他 地方 则无法展开参数包 我们还可以声明一些有趣的包扩展表达式 扩展1
  • python学习笔记---Python基础【廖雪峰】

    Python基础 数据类型和变量 整数 对于很大的数 例如10000000000 很难数清楚0的个数 Python允许在数字中间以 分隔 因此 写成10 000 000 000和10000000000是完全一样的 十六进制数也可以写成0xa
  • 【无标题】VMware开启虚拟机提示此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态。

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 前言 最近新装一台主机 安装VMware后开机时遇到无法开启 其实遇到这个问题 我们只需要进主板BIOS中 开启Intel Virtualization Technology
  • matlab批量读取并处理.csv文件

    matlab批量读取并处理 csv文件 在fpga数据处理时往往要对ila的输出的大量csv文件进行分析 而手动一个一个文件的导入处理太过麻烦 因而笔者编写了一段matlab代码可以对csv文件进行批量处理 clear clc close
  • JMeter获取登录cookies

    玩过JMeter的都知道 在JMeter请求的时候非登录接口都是需要依赖cookies的 如果把cookies写死 切换登陆账号之后又需要修改cookies 这里想把每一次登录的cookies都获取成最新的 在网上也看过用各种方式去进行获取
  • 【TensorFlow】猫狗大战——二分类

    Code kevin28520 cats vs dogs https blog csdn net caicai2526 article details 75329812 https blog csdn net caicai2526 arti
  • Jenkins与Github集成 webhook配置

    Jenkins与Github集成 Jenkins目前是手动进行项目构建的 如何才能做到Github并持续集成呢 配置前要求 1 Jenkins已经安装Github插件 2 Jenkins服务器已经拥有一个公网IP地址 第一步 配置Jenki
  • ImportError: This version of TensorFlow Datasets requires TensorFlow version >= 2.1.0

    ImportError This version of TensorFlow Datasets requires TensorFlow version gt 2 1 0 Detected an installation of version
  • sublime text3自定义代码补全模板

    模拟案例 拟实现在 HTML 文件中输入cmt 再按TAB键即可自动补全注释代码块 如下 自动补全注释代码 示例 解决方案 首先在 Sublime Text 中安装以下插件 已装请略 Package Control Emmet Packag
  • CMake错误:“Cannot specify sources for target “xxx“ which is not built by this project.”

    描述 运行cmake时候 出现该错误 原因 在没有定义目标前 先链接了一些库或其他元素到该目标上 cmake找不到目标 解决方法 首先定义目标 然后链接库 比如首先添加add library或add executable 然后添加targe
  • 如何关闭端口防止病毒与黑客入侵

    如何关闭端口防止病毒与黑客入侵 你的系统是不是1XP SP1 但是安装了2005瑞星杀毒软件后总是提示系统有 MS 4011 Exploit 和Blaster Rpc Exploit 两个漏洞 最直接的办法 把系统不用的端口都关闭掉 然后从
  • 爬虫入门基础-Selenium反爬(taobao)

    1 淘宝反爬 淘宝的反爬机制是非常完善的 在用selenium登陆淘宝的时候发现淘宝能检测到并弹出滑块 然后无论怎么滑动都通过不了 在经过一番搜索后发现很多网站对selenium都有检测机制 如检测是否存在特有标识 cdc asdjflas