返回

告别手动操作!利用 Selenium 和 Requests 自动获取 Twitter 授权 Bearer Token

python

自动化获取 Twitter 授权 Bearer Token

问题:

手动启动浏览器并从 F12 中提取 Twitter 授权 Bearer Token 繁琐且耗时。

解决方案:

我们可以使用 Selenium 和 Requests 库自动完成此过程,无需任何手动干预。

步骤 1:准备

  • 安装 Selenium 和 Requests 库。
  • 创建一个 Twitter 应用程序并获取消费者密钥和秘密密钥。

步骤 2:使用 Selenium 模拟浏览器

Selenium 允许我们通过脚本来模拟浏览器行为。它可以自动填写表单、单击按钮和获取页面元素。我们可以使用此功能来模拟 Twitter 登录过程并提取 Bearer Token。

# 设置 Selenium 选项(无头模式)
options = webdriver.ChromeOptions()
options.add_argument('--headless')

# 创建 Selenium 浏览器驱动
driver = webdriver.Chrome(options=options)

# 访问 Twitter 登录页面
driver.get('https://twitter.com/login')

# 输入登录凭据
username = '你的 Twitter 用户名'
password = '你的 Twitter 密码'
driver.find_element(By.XPATH, '//input[@name="text"]').send_keys(username)
driver.find_element(By.XPATH, '//input[@name="password"]').send_keys(password)
driver.find_element(By.XPATH, '//button[@type="submit"]').click()

# 等待登录成功
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//span[@class="css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0"]')))

# 获取授权 Bearer Token
bearer_token = driver.execute_script('return localStorage.getItem("tkn_auth");')

# 关闭浏览器驱动
driver.quit()

步骤 3:使用 Requests 验证 Bearer Token

获得 Bearer Token 后,可以使用 Requests 库通过 Twitter API 验证它。

# 设置请求头
headers = {'Authorization': f'Bearer {bearer_token}'}

# 发送验证请求
response = get('https://api.twitter.com/1.1/account/verify_credentials.json', headers=headers)

# 检查响应状态码
if response.status_code == 200:
    print('授权成功!')
else:
    print('授权失败!')

优点:

  • 完全自动化,无需手动交互。
  • 节省时间和精力。
  • 防止误输入或其他错误。

注意事项:

  • 确保应用程序具有适当的权限。
  • 定期更新 Selenium 版本以确保兼容性。
  • 不要滥用此方法。仅在有需要时使用。

常见问题解答:

  1. 我应该使用哪种浏览器驱动?
    • 推荐使用 Chrome 或 Firefox 驱动。
  2. 是否可以在没有图形界面(GUI)的情况下运行 Selenium?
    • 是的,可以通过启用无头模式来实现。
  3. 我如何更新 Selenium 版本?
    • 使用 pip install -U selenium。
  4. 可以使用 Selenium 来自动化其他任务吗?
    • 是的,Selenium 可以用于各种自动化任务,例如测试和网络抓取。
  5. 如果遇到问题怎么办?
    • 检查浏览器驱动是否安装正确,并且代码没有语法错误。还可以尝试搜索在线论坛或文档以解决特定问题。