如何修复tiktok selenium机器人检测

How to fix tiktok selenium robot detection

如何修复 TikTok selenium 机器人检测

背景信息


我正在创建一个 python selenium 机器人来在 TikTok 网站上执行操作。用户将手动登录,因此网站检测鼠标移动和打字速度是 irrelevant.The 问题是,我在使用 selenium 时无法登录

我试过的


options.add_argument("start-maximized")

# Chrome is controlled by automated test software
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

# avoiding detection
options.add_argument('--disable-blink-features=AutomationControlled')

我想要的


我希望能够在没有 TikTok 说 Too many log-in attempts. Try again later 的情况下登录,为了进一步说明,我可以在没有 selenium 的情况下正常登录,一切都一样,它可以工作,只是在 selenium 中不起作用。


这是启动selenium的代码

post = "https://www.tiktok.com/@smoothmovesranch/video/7091224442243681579"

myProxy = ""

#configuration
options = Options()
prox = Proxy()
prox.proxy_type = ProxyType.MANUAL
prox.http_proxy = myProxy
prox.ssl_proxy = myProxy

capabilities = webdriver.DesiredCapabilities.CHROME
prox.add_to_capabilities(capabilities)

options.add_argument("window-size=1400,600")
options.add_argument("--incognito")

driver = webdriver.Chrome(executable_path = os.path.join(os.getcwd(), 'chromedriver'), options=options)

#opens tiktok login page
driver.get('https://www.tiktok.com/login/phone-or-email/email')

一些可能有帮助的事情:

  1. 确保您的代理在每次登录尝试时都在更改。

  2. 对于新登录的每个实例,使用相同的代理或新的代理创建一个新的 webdriver 环境。

  3. 添加随机等待时间。例如,instagram 将限制他们怀疑是机器人的帐户。解决这个问题的方法是让 selenium 实例在不同的时间执行不同的点击操作。也就是说,让等待时间在几秒之间波动就可以解决问题。

  4. 此外,此代码可能有助于解决登录尝试次数过多的问题。简而言之,它有助于 selenium 在浏览网站时更好地向网站服务器伪装自己。

     user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36'    
     options.add_argument('user-agent={0}'.format(user_agent))