您的位置:首页 >新闻资讯 > 正文

python获得cookie的三个方案

来源:互联网 作者:admin 时间:2019-11-27 14:24:38

  代理IP,加上Python,是我们网络爬虫的强力搭配。使用Python可以通过什么方式来获得cookie?下面看看ET代理带来的3个方案,看看有没有合适使用的。

python获得cookie的三个方案

  方案一:


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


  from selenium import webdriver


  driver=webdriver.PhantomJS()


  url="https://et.xiamenair.com/xiamenair/book/findFlights.action?lang=zh&tripType=0&queryFlightInfo=XMN,PEK,2018-01-15"


  driver.get(url)


  # 获取cookie列表


  cookie_list=driver.get_cookies()


  # 格式化打印cookie


  for cookie in cookie_list:


  cookie_dict[cookie['name']]=cookie['value']


  方案二:


  利用requests库获取:


  Python3


  def getCookie():


  url = "****"


  Hostreferer = {


  #'Host':'***',


  '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'


  }


  #urllib或requests在打开https站点是会验证证书。 简单的处理办法是在get方法中加入verify参数,并设为False


  html = requests.get(url, headers=Hostreferer,verify=False)


  #获取cookie:DZSW_WSYYT_SESSIONID


  if html.status_code == 200:


  print(html.cookies)


  for cookie in html.cookies:


  print(cookie)


  方案三:


  利用cookielib库获取:


  (1)Python2


  import cookielib


  import urllib2


  Url = "https://et.xiamenair.com/xiamenair/book/findFlights.action?lang=zh&tripType=0&queryFlightInfo=XMN,PEK,2018-01-15"


  cj = cookielib.CookieJar()


  opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))


  urllib2.install_opener(opener)


  resp = urllib2.urlopen(Url)


  for index, cookie in enumerate(cj):


  print '[',index, ']',cookie


  (2)Python3


  from urllib import request


  from http import cookiejar


  #跳过SSL验证证书


  import ssl


  #设置忽略SSL验证


  ssl._create_default_https_context = ssl._create_unverified_context


  if __name__ == '__main__':


  #声明一个CookieJar对象实例来保存cookie


  cookie = cookiejar.CookieJar()


  #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler


  handler=request.HTTPCookieProcessor(cookie)


  #通过CookieHandler创建opener


  opener = request.build_opener(handler)


  #此处的open方法打开网页


  response = opener.open('http://www.baidu.com')


  #打印cookie信息


  for item in cookie:


  print('Name = %s' % item.name)


  print('Value = %s' % item.value)


  获取cookie也被经常用在突破爬虫限制上面,掌握好这3个方法,能够让大家更好的使用代理IP来获取网络数据。


相关文章内容简介