python - 如何修复tiktok selenium机器人检测

标签 python selenium selenium-webdriver

如何修复 TikTok selenium 机器人检测

背景信息


我正在创建一个 python selenium 机器人来在 TikTok 网站上执行操作。用户将手动登录,因此网站检测鼠标移动和打字速度无关紧要。问题是,我在使用 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 的情况下登录。稍后再试,为了更清楚,我可以在没有 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))
    

关于python - 如何修复tiktok selenium机器人检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72144371/

相关文章:

python - 从属于帖子的网站获取第一张图片

python - Scrapy 无法识别的命令

python - Pdf Miner 返回奇怪的字母/字符

Javascript:修改代码以将元素添加到数组/列表

python-3.x - 抓取所有 youtube 搜索结果

python - 如何在禁用 webdriver 和 quic 的情况下启动 Chrome?

java - Selenium 网格: How to retrieve node information from HUB programatically?

Python selenium 等待页面无条件加载

python - 实现 NEAT python 以在每次预测后重新训练

python - 使用 Selenium 单击 'Load More' 按钮直到它不存在(Youtube)