我目前正在使用Python和Selify自动化我的Twitter帐户的登录过程.

然而,我面临着一个问题,Twitter的反机器人措施似乎检测到了自动化,当点击next button时,检测到了immediately redirect me to the homepage.

Next button

我曾try 使用send_keys和ActionChains来创建更多类似人类的交互,但问题仍然存在.

下面是一个简化的代码片段,它说明了我当前的方法:

# imports...

driver.get(URLS.login)

username_input = driver.find_element(By.NAME, 'text')
username_input.send_keys(username)

next_button = driver.find_element(By.XPATH, '//div[@role="button"]')

# These attempts all failed and return to the homepage
next_button.click()
next_button.send_keys(Keys.ENTER)
ActionChains(driver).move_to_element(next_button).click().perform()

奇怪的是,除了手动点击下一步按钮外,execute a 100 in console还可以使用.

我怀疑我的自动化try 仍在被Twitter的安全机制检测到,但我不确定根本原因或如何成功绕过它.

推荐答案

您可以try 这样登录Twitter:

import time
from selenium import webdriver
from selenium.webdriver import ChromeOptions, Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait


options = ChromeOptions()
options.add_argument("--start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])

driver = webdriver.Chrome(options=options)
url = "https://twitter.com/i/flow/login"
driver.get(url)

username = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[autocomplete="username"]')))
username.send_keys("your_username")
username.send_keys(Keys.ENTER)

password = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[name="password"]')))
password.send_keys("your_password")
password.send_keys(Keys.ENTER)

time.sleep(10)

reference:

Python相关问答推荐

为什么dict(id=1,**{id:2})有时会引发KeyMessage:id而不是TypMessage?

Pandas 在时间序列中设定频率

覆盖Django rest响应,仅返回PK

在应用循环中间保存pandas DataFrame

根据网格和相机参数渲染深度

如何获取TFIDF Transformer中的值?

如何更改分组条形图中条形图的 colored颜色 ?

如何使用Python以编程方式判断和检索Angular网站的动态内容?

如何根据一列的值有条件地 Select 前N组?

提取相关行的最快方法—pandas

删除marplotlib条形图上的底边

在两极中过滤

Maya Python脚本将纹理应用于所有对象,而不是选定对象

为什么在FastAPI中创建与数据库的连接时需要使用生成器?

Polars Group by描述扩展

如何使用正则表达式修改toml文件中指定字段中的参数值

如何在Python Pandas中填充外部连接后的列中填充DDL值

将CSS链接到HTML文件的问题

如何用FFT确定频变幅值

多个矩阵的张量积