python爬虫之代理与Cookie

代理

通过此种方式会伪装自己的IP地址,服务器识别时会识别我们伪装的代理地址。

from urllib import request

proxy_hander = request.ProxyHandler({
    "http":"http://127.0.0.1:9743"
    "https":"http://127.0.0.1:9743"
})
opener = request.bulid_opener(proxy_hander)
response = opener.open('http://www.baidu.com')
print(response.read())

Cookie

为什么要使用Cookie呢?
Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了 。

  • 如何获取cookie信息?
      from http import cookiejar
      from urllib import request
    
      #第一步:声明一个cookiejar对象
      cookie = cookiejar.CookieJar()
      #第二步:根据cookiejar对象创建cookie信息的管理对象handler
      handler = request.HTTPCookieProcessor(cookie)
      #第三步:根据handler对象创建一个opener对象
      opener = request.build_opener(handler)
      #第四步:根据opener对象打开网址
      response = opener.open('https://www.baidu.com')
      #打印cookie信息
      for item in cookie:
          print(item.name+"="+item.value)
    
  • 如何将cookie信息保存至本地?
    • CookieJar是一个类,其子类为FileCookieJar,它有两个子类:MozillaCookieJar,LWPCookieJar
      MozillaCookieJar和LWPCookieJar都是用于将cookie信息保存为本地文件的一种形式,区别在于使用MozillaCookieJar生成的Cookie信息会保存为 Mozilla类型的Cookie格式,使用LWPCookieJar会将cookie信息保存为libwww-perl类型的cookie文件.
      from http import cookiejar
      from urllib import request
    
      #保存cookie信息的文件名
      filename = "cookie.txt"
      #第一步:声明一个MozillaCookieJar或者LWPCookie的一个对象
      cookie = cookiejar.MozillaCookieJar(filename)
      #第二步:根据MozillaCookieJar生成的对象cookie来创建一个cookie信息管理对象hanler
      handler = request.HTTPCookieProcessor(cookie)
      #第三步:根据handler对象创建opener对象
      opener = request.build_opener(handler)
      #第四步:根据opener对象对网址发送请求
      response = opener.open("https://www.baidu.com")
      #第五步:将cookie信息保存到本地
      # ignore_discard=True,即使cookie信息将要过期或者作废,也要将其保存至文件
      # ignore_expires=True,即使cookie信息在文件中已经存在,仍然对其进行覆盖写入
      cookie.save(ignore_discard=True,ignore_expires=True)
    
  • 读取cookie信息对网站进行访问
    from http import cookiejar
      from urllib import request
    
      #第一步:声明一个MozillaCookieJar对象
      cookie = cookiejar.MozillaCookieJar()
      #第二步:加载本地的cookie信息
      # ignore_discard=True,即使cookie信息将要过期或者作废,也要读取cookie信息
      # ignore_expires=True,即使cookie信息在文件中已经存在,仍然要读取。
      cookie.load('cookie.txt',ignore_expires=True,ignore_discard=True)
      #第三步:根据cookie来创建其信息管理对象handler
      handler = request.HTTPCookieProcessor(cookie)
      #第四步:根据handler创建一个opener对象
      opener = request.build_opener(handler)
      #第五步:根据opener对象调用opener方法对网站发送请求
      response = opener.open('http://www.baidu.com')
      print(response.read().decode("utf-8"))
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值