Python模拟登录多种实现方式

发布时间:2019-08-09 08:50:59编辑:auto阅读(1401)

    Python模拟登录多种实现方式

    基于Python 3.6


    #coding:utf-8
    import sys
    import io
    import urllib.request
    import http.cookiejar
    
    
    
    ################## 第一种登陆方式 ##################
    ################## 直接使用已知的cookie访问 ##################
    
    # #改变标准输出的默认编码
    # sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
    # #登录后才能访问的网站
    # url = 'http://www.xxx.com.cn/member/index'
    
    # #浏览器登录后得到的cookie,也就是刚才复制的字符串
    # cookie_str = 'PHPSESSID=go07n3aart4qoflrfe0m3nod42'
    
    # #构造登录请求
    # request = urllib.request.Request(url)
    # #设置cookie
    # request.add_header('cookie', cookie_str)
    # #设置请求头
    # request.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36')
    # # 请求页面
    # response = urllib.request.urlopen(request)
    # print(response.read().decode('utf-8'))
    
    
    
    
    ################## 第二种登陆方式 ##################
    ################## 模拟登录后再携带得到的cookie访问 ##################
    
    # #改变标准输出的默认编码
    # sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
    
    
    # # 登陆信息
    # # 登录后才能访问的网站
    # url = 'http://www.xxx.com.cn/member/index'
    # login_url = "http://www.xxx.com.cn/login/quick_login"
    # login_username = "xxx"
    # login_password = "xxx"
    
    # #登录时需要POST的数据
    # login_data = {
    #     "username" : login_username,
    #     "password" : login_password
    # }
    # post_data = urllib.parse.urlencode(login_data).encode('utf-8')
    
    # #设置请求头
    # headers = {'User-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}
    # #构造登录请求
    # req = urllib.request.Request(login_url, headers = headers, data = post_data)
    
    
    # #构造cookie
    # cookie = http.cookiejar.CookieJar()
    
    # #由cookie构造opener
    # opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
    
    
    # #发送登录请求,此后这个opener就携带了cookie,以证明自己登录过
    # resp = opener.open(req)
    
    # #构造访问请求
    # req = urllib.request.Request(url, headers = headers)
    
    # resp = opener.open(req)
    
    # print(resp.read().decode('utf-8'))
    
    
    
    
    ################## 第三种登陆方式 ##################
    ################## 保存Cookie到文件 ##################
    
    # #改变标准输出的默认编码
    # sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
    
    # # 登陆信息
    # # 登录后才能访问的网站
    # url = 'http://www.xxx.com.cn/member/index'
    # login_url = "http://www.xxx.com.cn/login/quick_login"
    # login_username = "xxx"
    # login_password = "xxx"
    
    # #登录时需要POST的数据
    # login_data = {
    #     "username" : login_username,
    #     "password" : login_password
    # }
    # post_data = urllib.parse.urlencode(login_data).encode('utf-8')
    
    # #设置请求头
    # headers = {'User-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}
    # #构造登录请求
    # req = urllib.request.Request(login_url, headers = headers, data = post_data)
    
    # #设置保存cookie的文件,同级目录下的cookie.txt
    # filename = 'cookie.txt'
    # #声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
    # cookie = http.cookiejar.MozillaCookieJar(filename)
    
    # #由cookie构造opener
    # opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
    
    
    # #发送登录请求,此后这个opener就携带了cookie,以证明自己登录过
    # resp = opener.open(req)
    # #保存cookie到文件
    # cookie.save(ignore_discard=True, ignore_expires=True)
    
    # #构造访问请求
    # req = urllib.request.Request(url, headers = headers)
    
    # resp = opener.open(req)
    
    # print(resp.read().decode('utf-8'))
    
    
    
    
    ################## 第四种登陆方式 ##################
    ################## 从文件中获取Cookie并访问 ##################
    
    #改变标准输出的默认编码
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
    
    # 登陆信息
    # 登录后才能访问的网站
    url = 'http://www.xxx.com.cn/member/index'
    
    #设置请求头
    headers = {'User-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}
    #构造登录请求
    req = urllib.request.Request(url, headers = headers)
    
    #设置保存cookie的文件的文件名,相对路径,也就是同级目录下
    filename = 'cookie.txt'
    #创建MozillaCookieJar实例对象
    cookie = http.cookiejar.MozillaCookieJar()
    #从文件中读取cookie内容到变量
    cookie.load(filename, ignore_discard=True, ignore_expires=True)
    #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler
    handler = urllib.request.HTTPCookieProcessor(cookie)
    #通过CookieHandler创建opener
    opener = urllib.request.build_opener(handler)
    #此用opener的open方法打开网页
    response = opener.open(req)
    #打印信息
    print(response.read().decode('utf-8'))
    
    
    
    
    


关键字

上一篇: sublime3 ctags安装

下一篇: rails3的render(:updat