python3 获取cookie解决方案

方案一:

利用selenium+phantomjs无界面浏览器的形式访问网站,再获取cookie值:

  1. from selenium import webdriver
  2.  
  3. driver=webdriver.PhantomJS()
  4. url="https://et.xiamenair.com/xiamenair/book/findFlights.action?lang=zh&tripType=0&queryFlightInfo=XMN,PEK,2018-01-15"
  5. driver.get(url)
  6. # 获取cookie列表
  7. cookie_list=driver.get_cookies()
  8. # 格式化打印cookie
  9. for cookie in cookie_list:
  10. cookie_dict[cookie['name']]=cookie['value']

方案二:

利用cookielib库获取:

(1)Python2

  1. import cookielib
  2. import urllib2
  3. Url = "https://et.xiamenair.com/xiamenair/book/findFlights.action?lang=zh&tripType=0&queryFlightInfo=XMN,PEK,2018-01-15"
  4. cj = cookielib.CookieJar()
  5. opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
  6. urllib2.install_opener(opener)
  7. resp = urllib2.urlopen(Url)
  8. for index, cookie in enumerate(cj):
  9. print '[',index, ']',cookie

(2)Python3

  1. from urllib import request
  2. from http import cookiejar
  3.  
  4. #跳过SSL验证证书
  5. import ssl
  6. #设置忽略SSL验证
  7. ssl._create_default_https_context = ssl._create_unverified_context
  8.  
  9. if __name__ == '__main__':
  10. #声明一个CookieJar对象实例来保存cookie
  11. cookie = cookiejar.CookieJar()
  12. #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler
  13. handler=request.HTTPCookieProcessor(cookie)
  14. #通过CookieHandler创建opener
  15. opener = request.build_opener(handler)
  16. #此处的open方法打开网页
  17. response = opener.open('http://www.baidu.com')
  18. #打印cookie信息
  19. for item in cookie:
  20. print('Name = %s' % item.name)
  21. print('Value = %s' % item.value)

方案三:

利用requests库获取:

Python3

  1. def getCookie():
  2. url = "****"
  3. Hostreferer = {
  4. #'Host':'***',
  5. 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'
  6. }
  7. #urllib或requests在打开https站点是会验证证书。 简单的处理办法是在get方法中加入verify参数,并设为False
  8. html = requests.get(url, headers=Hostreferer,verify=False)
  9. #获取cookie:DZSW_WSYYT_SESSIONID
  10. if html.status_code == 200:
  11. print(html.cookies)
  12. for cookie in html.cookies:
  13. print(cookie)

python3 获取cookie解决方案的更多相关文章

  1. 获取cookie里面的sessionid

    做接口的时候我们需要获取一个令牌,类似于token以及sessionid这样的签名,也可以说是一个令牌. import urllib.request, urllib.parse, urllib.err ...

  2. js获取cookie

    js获取cookie 之前用jQuery.cookie来获取cookie,虽然简单,但是项目上又多引用了一个插件,总觉得不太好,下面是我封装的js原生获取cookie的函数. function get ...

  3. js获取cookie中存储的值

    最近看了试卷题目发现自己会的十分的匮乏, 第一题就把自己难住了,知道有这个东西,但是实际上没有操作过. ========================================= cookie ...

  4. javascript设置和获取cookie的通用方法

    //获取cookie  function getCookieValue(cookieName)  {     var cookieValue = document.cookie;     var co ...

  5. 通过js获取cookie的实例及简单分析

    今天碰到一个在firefox下swfupload 上传时session不一致问题 在一个项目遇到多文件上传时,firefox下,服务器端的session获取不一致问题. 解决办法: 解决办法:将ses ...

  6. ASP.NET后台获取cookie中文乱码解决办法

    项目中有一功能,需要从一个页面前台使用cookie保存json数据,并传递到第二个页面.要在第二个页面中获取cookie中的json的值,没有任何处理情况下,获取的字符串为乱码,就连符号都是乱码的.百 ...

  7. js创建和获取cookie

    创建cookie document.cookie='like=1'; //创建 cookie键名和值 var str = document.cookie; 获取cookie 读取cookiefunct ...

  8. Js设置及获取Cookie的方法

    Login页面设置Cookie: <script type="text/javascript"> if(json.result=="true") { ...

  9. Java通过httpclient获取cookie模拟登录

    package Step1; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.Htt ...

随机推荐

  1. CentOS7 开放服务端口

    CentOS 7 默认是firewall防火墙 如果你想让一个web服务可以被其它机子访问,就得开放这个服务的端口,不然就会被拦截 1. 开放端口命令 firewall-cmd --add-port= ...

  2. 转git的使用

    git的使用(包括创建远程仓库到上传代码到git的详细步骤以及git的一些常用命令) A创建远程仓库到上传代码到git 1)登陆或这注册git账号 https://github.com 2)创建远程仓 ...

  3. HDU 2604 Queuing(递推+矩阵)

    Queuing [题目链接]Queuing [题目类型]递推+矩阵 &题解: 这题想是早就想出来了,就坑在初始化那块,只把要用的初始化了没有把其他的赋值为0,调了3,4个小时 = = 本题是可 ...

  4. ip and port check 正则

    在网页开发中可能会遇到需要对在页面输入的ip和端口进行正确性验证,那么正则表达式就是最有力的工具: 1:ip的正则表达式: 格式是由“.”分割的四部分,每部分的范围是0-255: 每段的正则可以分几部 ...

  5. caffe神经网络中不同的lr_policy间的区别

    lr_policy可以设置为下面这些值,相应的学习率的计算为: - fixed:  保持base_lr不变. - step:  如果设置为step,则还需要设置一个stepsize,  返回 base ...

  6. gispro设置标注属性字体样式设置

    为了应对电子地图和卫星影像的底图,标注样式选择比较关键.挑选了黑字白色晕圈效果.记住不是设置字体轮廓. 因为字体宽度(字粗)有限,设置轮廓直接把字体本身的颜色覆盖了

  7. uvm设计分析——callback

    uvm_callback,设计者在进行class的function设计时,有意留下的一些hook,总是遍历某个pool中的对象: 使用者在使用时,将实现添加到某个pool中: callback中,最重 ...

  8. django 设置不带后缀的访问路径

    在urls.py 设置空路径,并指向对应的html文件 url(r'^$', views.index),

  9. GeoJSON 和 TopoJSON

    GeoJSON 和 TopoJSON 是符合 JSON 语法规则的两种数据格式,用于表示地理信息. 1. GeoJSON GeoJSON 是用于描述地理空间信息的数据格式.GeoJSON 不是一种新的 ...

  10. Linux 压缩解压缩命令详解

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...