模拟登陆

Cookie和Session

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 方式一
# requests会自动保存每次请求后设置的Cookie,下次请求自动带上
session = requests.Session()
session.post(LOGIN_URL, data={
'username': USERNAME,
'password': PASSWORD
})
response_index = session.get(INDEX_URL)

# 方式二
# 采用Selenium模拟登陆保存Cookie
browser = webdriver.Chrome()
browser.get(BASE_URL)
browser.find_element_by_css_selector('input[name="username"]').send_keys(USERNAME)
browser.find_element_by_css_selector('input[name="password"]').send_keys(PASSWORD)
browser.find_element_by_css_selector('input[type="submit"]').click()
time.sleep(10)
cookies = browser.get_cookies()
browser.close()
session = requests.Session()
# 唯一需要注意的是:Selenium获取的Cookie需要设置进session中
for cookie in cookies:
session.cookies.set(cookie['name'], cookie['value'])
response_index = session.get(INDEX_URL)

JWT登陆

1
2
3
4
5
6
7
8
9
10
11
12
session = requests.Session()

response_login = session.post(LOGIN_URL, data={
'username': USERNAME,
'password': PASSWORD
})

jwt = response_login.json().get('token')
headers = {
'Authorization': f'jwt {jwt}'
}
response = requests.get(INDEX_URL, params={'limit': 18, 'offset': 0}, headers=headers)
赏个🍗吧
0%