cookies获取方法及另一种调用cookies的方式
来源:互联网 发布:决策树算法 编辑:程序博客网 时间:2024/05/16 08:46
爬虫爬网站不免遇到需要登录的问题. 登录的时候可能还会碰到需要填验证码的问题, 有的验证码甚至是拖动拼图来完成的. 虽然现在这些都有开源解决方案, 但是假设现在只是自己做个小小的不具规模的爬虫来玩一玩; 或者主要的精力想要放在如何解析 html, 或者验证抓取算法上, 而不是通过登录验证上, 那么开源解决方案并不是最好的解决方案.
更好的方案是获取浏览器的 Cookies, 然后让 requests 这个库来直接使用登录好的 Cookies
一般方式:打开浏览器的开发者模式在console里输入document.cookie,复制出来贴到代码里的
另一种方式:从电脑本地获取cookie,下面给出一个 get_chrome_cookies(url) 函数, 可以获取 Chrome 浏览器的 Cookies 信息. 程序在 Windows 下调试通过, 因为 C 盘需要特殊权限来读写文件, 因此程序先将 Cookies 数据库文件拷贝到 D 盘. 该方法用到了第三方库 win32crypt.
importsqlite3
importwin32crypt
importos
defget_chrome_cookies(url):
os.system('copy "C:\\Users\\Liu\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cookies" D:\\python-chrome-cookies')
conn= sqlite3.connect("d:\\python-chrome-cookies")
ret_list= []
ret_dict= {}
forrow inconn.execute("select host_key, name, path, value, encrypted_value from cookies"):
ifrow[0]!= url:
continue
ret= win32crypt.CryptUnprotectData(row[4],None,None,None,0)
ret_list.append((row[1],ret[1]))
ret_dict[row[1]]= ret[1].decode()
conn.close()
os.system('del "D:\\python-chrome-cookies"')
returnret_dict
使用方法: x = requests.get(url, cookies = get_chrome_cookies(domain))
登录知乎: x = requests.get("http://www.zhihu.com, cookies=get_chrome_cookies(".zhihu.com"))
转自https://jecvay.com/2015/03/python-chrome-cookies.html
阅读全文
0 0
- cookies获取方法及另一种调用cookies的方式
- VC获取cookies的几种方法
- C# winform获取完整Cookies的方法
- 调用方法的另一种方式
- 调用方法的另一种方式
- 获取cookies
- angularjs获取cookies的token
- 自动化测试获取和删除cookies的方法
- VC++设置与获取cookies的几种方法
- 自动化测试获取和删除Cookies的方法
- VC++设置与获取cookies的几种方法
- VC++设置与获取cookies的几种方法
- android进行cookies的获取和注入方法
- C#操作Cookies的方法
- C#操作Cookies的方法
- cookies
- Cookies
- Cookies
- Button的监听方法
- HDU5041-壮压DP-D
- C/C++100问
- selenium--上传下载
- Bzoj 3674: 可持久化并查集加强版
- cookies获取方法及另一种调用cookies的方式
- 程序员面试50题—sizeof的用法
- Hdu 6030 Happy Necklace【Dp+矩阵快速幂】
- Spring自学之XML式AOP编程
- 高通Secure Boot调试流程记录
- 关于Linux环境编译错误:“undefined reference to" 的原因总结
- Spring Web MVC
- 《ReactNatve》之处理Android返回键
- 安卓音视频播放器和播放进度