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



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

我使用Selenium试图绕过reCAPTCHA v3,但我想使用requestsbeautifulsoup库在登录页面后的URL中抓取数据(登录页面登录后重定向到的URL(。

以下是我为登录编写的代码,以及底部的一个小片段,我计划在登录后使用它来抓取网站。

import requests
import os
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome("chromedriver", options=chrome_options)
action = ActionChains(driver)
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 = "email"
password = 'password'
Headers = {
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"
}

def login():
driver.get(url_1)

driver.find_element_by_id("user_email").send_keys(email)
driver.find_element_by_id("user_password").send_keys(password)

driver.find_elements_by_class_name("icheckbox")[0].click()
driver.find_elements_by_name("commit")[0].click()
time.sleep(1)
print(driver.current_url)
login()
test = requests.get(url, headers=Headers)   

登录实际上是修改cookie以添加一个密钥,该密钥验证您是否已登录。我们可以使用这些信息来获取cookie数据,并将其重新用于Pythonrequests模块。让我们从网络驱动程序中提取cookie开始,如下所示:

driver_cookies = driver.get_cookies()

现在您有了cookie,您可以在cookies参数中将它们注入到未来的请求中,如下所示:

test = requests.get(url, headers=Headers, cookies=driver_cookies)

相关内容

  • 没有找到相关文章

最新更新