jeeyong
2021-10-22 19:53:20 +08:00
我有社交牛逼症, 我再来多 BB 几句..
首先, 我没有任何业务是爬取淘宝的. 但是从技术角度做过验证, 发现可行. 仅此而已.
本文并未透露关于爬取淘宝的任何技术细节和技术方案, 旨在讨论人机识别技术.
淘宝在人机识别方面会更深入的做技术甄别, 通过发现更多的技术特征, 从而直接进行访问阻断或验证.
比如早期的时候, 他是我接触的相对较早去获取$_cdc 变量判断是否为爬虫的.
后来发展成为通过获取更多的特征, 来判断. 这应该是属于 v8 解析 js 的时候的引擎的特性吧? 我不太懂 js, 仅限于普通的应用层面. 我贴一部分代码, 看看做爬虫的时候, 你关注了多少.
var platform = 'iPhone'
var webdriver = false
var standalone = false
var maxTouchPoints = 5
var cookieEnabled = true
var productSub = 20030107
var product = "Gecko"
var vendor = "{vendor}"
var vendorSub = ""
var onLine = true
var hardwareConcurrency = undefined
var oscpu = undefined
var cpuClass = undefined
var doNotTrack = undefined
var getBattery = undefined
var storage = undefined
var systemLanguage = undefined
var permissions = ["geolocation", "notifications"]
var bluetooth = undefined
var standalone = undefined
var userAgent = "{userAgent}"
var shanghai = {{"longitude": 0, "latitude": 0}}
var zhongshan = {{"longitude": 0, "latitude": 0}}
var hangzhou = {{"longitude": 0, "latitude": 0}}
这些变量大部分是系统内置的变量, 在你加载页面的时候他就有了...
但是改变他的时候不能直接赋值, 这个 JS 大佬应该更清楚, 我只是知道...
需要通过 Object.defineProperty 方法去改变...
小朋友太闹了...我得哄娃去了..哈哈哈