Python 使用Selenium登录网站,但继续处理请求(登录时)

Python 使用Selenium登录网站,但继续处理请求(登录时),python,selenium-webdriver,web-scraping,python-requests,Python,Selenium Webdriver,Web Scraping,Python Requests,我正在使用Selenium和Chrome web驱动程序登录我在网站上的帐户,但在登录后,我想使用其他库(如请求)与网站进行交互 我使用Selenium试图绕过reCAPTCHA v3,但我想使用请求和美化组库来刮取登录页面后面的URL中的数据(登录页面登录后重定向到的URL) 下面是我为登录编写的代码,以及底部的一个小片段,我计划用它来删除网站登录后的内容 导入请求 导入操作系统 导入时间 从selenium导入webdriver 从selenium.webdriver.chrome.opti

我正在使用Selenium和Chrome web驱动程序登录我在网站上的帐户,但在登录后,我想使用其他库(如
请求
)与网站进行交互

我使用Selenium试图绕过reCAPTCHA v3,但我想使用
请求
美化组
库来刮取登录页面后面的URL中的数据(登录页面登录后重定向到的URL)

下面是我为登录编写的代码,以及底部的一个小片段,我计划用它来删除网站登录后的内容

导入请求
导入操作系统
导入时间
从selenium导入webdriver
从selenium.webdriver.chrome.options导入选项
从selenium.webdriver.common.action\u链导入ActionChains
chrome_options=options()
chrome\u选项。添加\u参数(“--headless”)
driver=webdriver.Chrome(“chromedriver”,options=Chrome\u options)
动作=动作链(驱动程序)
url_1=”https://ais.usvisa-info.com/en-am/niv/users/sign_in"
url_2=”https://ais.usvisa-info.com/en-am/niv/account/settings/update_email"
email=“电子邮件”
密码='password'
标题={
“用户代理”:“Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/89.0.4389.82 Safari/537.36”
}
def login():
获取驱动程序(url_1)
驱动程序。通过id(“用户电子邮件”)查找元素。发送密钥(电子邮件)
驱动程序。通过id(“用户密码”)查找元素。发送密钥(密码)
驱动程序。按类名称(“icheckbox”)查找元素[0]。单击()
驱动程序。按名称(“提交”)查找元素[0]。单击()
时间。睡眠(1)
打印(驱动程序。当前\u url)
登录()
test=requests.get(url,headers=headers)

登录实际上是修改cookie以添加密钥,从而验证您是否已登录。我们可以使用这些信息来获取cookie数据,并将其重新用于Python
请求
模块。让我们先从webdriver中提取cookie,如下所示:

driver\u cookies=driver.get\u cookies()
现在您已经有了cookie,您可以在
cookies
参数中将它们注入未来的请求中,如下所示:

test=requests.get(url,headers=headers,cookies=driver\u cookies)

您希望使用哪些库?“使用其他库”是什么意思?你想用你的代码实现什么?我想用它和其他库来刮取数据,我指的是请求、刮取和美化。你可以在脚本开始时导入其他lib,然后你可以在
def
(方法)中使用这些lib的方法。例如,如果您想在
方法请求中使用
驱动程序.current\u url
。get(url…)
您必须使用
return
而不是“print”,然后您必须将
login()
更改为s.th。比如
url=login()
。但是我不确定selenium是否应该以这种方式使用。谢谢,我会尝试一下,看看它是否有效,你应该从这篇文章中删除你的凭据(用户名+密码)。你是对的。这个想法是对的,但它说列表索引必须是整数或切片,而不是dict。我想我自己可以解决这个问题!再次感谢!没问题,祝你好运!