python 重定向 模拟登录 cookies 图片下载 解决加密 day 03 --(上篇)

1.重定向

import urllib.request
"""判断有没有重定向"""
response = urllib.request.urlopen("http://www.baidu.cn")
print(response.geturl()=="http://www.baidu.cn")
class RedirectHander(urllib.request.HTTPRedirectHandler):
    def http_error_302(self, req, fp, code, msg, headers):#302重定向
        #重定向之后的网页
        res = urllib.request.HTTPRedirectHandler.http_error_301(self, req, fp, code, msg, headers)
        res.status = code#返回的编码
        res.newurl = res.geturl()#当前的url
        return res  #返回重定向之后的网页
opener =urllib.request.build_opener(RedirectHander)#一个网页的对象
opener.open("http://www.baidu.cn")

2.图片下载

import urllib.request

urllib.request.urlretrieve("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1577726302002&di=a70b97aaf3652a3fde18dbe21368d0b2&imgtype=0&src=http%3A%2F%2Fup.enterdesk.com%2Fedpic%2F8f%2F0d%2Fec%2F8f0decd39d3644ef0953319cd292ef5d.jpg","绿巨人.jpg")

结果:

 

3.解决加密

import urllib.request
import urllib.parse
import ssl#解决加密

context = ssl._create_unverified_context()#忽略安全
url = "https://www.baidu.com"
headers ={"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
request = urllib.request.Request(url,headers=headers)
response = urllib.request.urlopen(request,context=context)
print(response.read().decode("utf8"))

4.模拟登录 cookies

import urllib.request
from http import cookiejar
import urllib.parse
#创建一个cookie对象
cookie = cookiejar.CookieJar()
cookie_handle = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(cookie_handle)
headers =[('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36')]
opener.addheaders = headers
loginurl = "http://www.renren.com/Plogin.com"
data = {"email":"xxxxx","password":"xxxxxx"}
data = urllib.parse.urlencode(data).encode("utf8")
request = urllib.request.Request(loginurl,data=data)
response = opener.open(request)#载入cookie,登录
response_index = opener.open("自身主页地址")
print(response_index.read().decode("utf8"))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值