如何修复tiktok selenium机器人检测
How to fix tiktok selenium robot detection
如何修复 TikTok selenium 机器人检测
背景信息
我正在创建一个 python selenium 机器人来在 TikTok 网站上执行操作。用户将手动登录,因此网站检测鼠标移动和打字速度是 irrelevant.The 问题是,我在使用 selenium 时无法登录
我试过的
我已经尝试在 chrome 上使用相同的 Mac 地址、IP 地址和相同的登录详细信息以隐身模式在没有 selenium 的情况下正常登录(有效!! )
我试过在 selenium 中使用随机用户代理(没有用)
我尝试添加以下 chrome 选项
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')
一些可能有帮助的事情:
确保您的代理在每次登录尝试时都在更改。
对于新登录的每个实例,使用相同的代理或新的代理创建一个新的 webdriver 环境。
添加随机等待时间。例如,instagram 将限制他们怀疑是机器人的帐户。解决这个问题的方法是让 selenium 实例在不同的时间执行不同的点击操作。也就是说,让等待时间在几秒之间波动就可以解决问题。
此外,此代码可能有助于解决登录尝试次数过多的问题。简而言之,它有助于 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))
如何修复 TikTok selenium 机器人检测
背景信息
我正在创建一个 python selenium 机器人来在 TikTok 网站上执行操作。用户将手动登录,因此网站检测鼠标移动和打字速度是 irrelevant.The 问题是,我在使用 selenium 时无法登录
我试过的
我已经尝试在 chrome 上使用相同的 Mac 地址、IP 地址和相同的登录详细信息以隐身模式在没有 selenium 的情况下正常登录(有效!! )
我试过在 selenium 中使用随机用户代理(没有用)
我尝试添加以下 chrome 选项
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')
一些可能有帮助的事情:
确保您的代理在每次登录尝试时都在更改。
对于新登录的每个实例,使用相同的代理或新的代理创建一个新的 webdriver 环境。
添加随机等待时间。例如,instagram 将限制他们怀疑是机器人的帐户。解决这个问题的方法是让 selenium 实例在不同的时间执行不同的点击操作。也就是说,让等待时间在几秒之间波动就可以解决问题。
此外,此代码可能有助于解决登录尝试次数过多的问题。简而言之,它有助于 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))