如何在python中使用请求设置cookie?

时间:2017-03-04 11:18:46

标签: python cookies python-requests

你好我现在正试图从需要登录的网站上获取信息。

但是我已经在reqeustURL中得到200个响应,我应该发布一些ID,密码和请求。

标题dict具有在chrome开发者网络点击中可以看到的requests_headers。表格数据字典有ID和密码。

login_site = requests.post(requestUrl, headers=headers, data=form_data)
status_code = login_site.status_code print(status_code)

我得到200

以下代码是我尝试的方式。

1。会话。

当我尝试使用会话设置cookie时,我失败了。我听说当我刮掉其他需要登录的页面时,会话可以设置cookie。

session = requests.Session()
session.post(requestUrl, headers=headers, data=form_data)
test = session.get('~~') #the website that I want to scrape
print(test.status_code)

我得到了403

2。手动设置cookie

我手动制作了我可以获得的cookie词典

cookies = {'wcs_bt':'...','_production_session_id':'...'}
r = requests.post('http://engoo.co.kr/dashboard', cookies = cookies)
print(r.status_code)

我也有403

实际上,我不知道我应该在cookies字典中写些什么。当我得到时,' wcs_bt = AAA; _production_session_id = BBB; _ga = CCC;' ,我应该将其更改为dict {' wcs_bt':' AAA' ..}? 当我得到饼干时

login_site = requests.post(requestUrl, headers=headers, data=form_data)
print(login_site.cookies)

在这段代码中,我只能得到 RequestsCookieJar [Cookie _production_session_id = BBB]

不知何故,我也失败了。

我怎样才能用饼干刮掉它?

1 个答案:

答案 0 :(得分:0)

刮擦需要登录的现代(大约2017年或更晚)网站可能非常棘手,因为登录过程的某些重要部分可能是在Javascript中实现的。

除非您像浏览器那样完全执行Javascript,否则您将无法完成登录。不幸的是,基本的Python库无济于事。

考虑Selenium with Python,它用于测试网站,但可用于自动化与网站的任何交互。