Python爬虫urllib之读取cookie文件不输密码访问网站

登录网站获取cookie,保存文件

 data = {
        "log": "*******",
        "pwd": "******",
        "rememberme": "forever",
        "wp-submit": "登录",
        # 登陆后重定向地址
        "redirect_to": "http://date.jobbole.com/4965/",
        "testcookie": "1"
    }
    data = parse.urlencode(data).encode()

cookie文件保存

  # 保存cookie到文件
  cookie.save(f,ignore_discard=True,ignore_expires=True)

读取cookie文件,实现携带cookie访问网站

	f = r'jobbole_cookie.txt'
    # 创建MozillaCookieJar实例对象
    cookie = cookiejar.MozillaCookieJar()
    # 从文件中读取cookie内容到变量
    cookie.load(f,ignore_discard=True,ignore_expires=True)
    handler = request.HTTPCookieProcessor(cookie)
    opener = request.build_opener(handler)

代码

from urllib import request,parse,error
from http import cookiejar
import json

def login():
    #登录的入口网址,密码数据,headers
    #获取cookie并且保存
    url = 'http://date.jobbole.com/wp-login.php'
    data = {
        "log": "*******",
        "pwd": "******",
        "rememberme": "forever",
        "wp-submit": "登录",
        # 登陆后重定向地址
        "redirect_to": "http://date.jobbole.com/4965/",
        "testcookie": "1"
    }
    data = parse.urlencode(data).encode()
    headers = {
        "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36",
        "Connection": "keep-alive"
    }

    # 设置保存cookie的文件,同级目录下的jobbole_cookie.txt
    f = r'jobbole_cookie.txt'
    # 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
    cookie = cookiejar.MozillaCookieJar(f)
    # 利用urllib库的HTTPCookieProcessor对象来创建cookie处理器
    handler = request.HTTPCookieProcessor(cookie)
    # 通过handler来构建opener
    opener = request.build_opener(handler)
    req = request.Request(url,data=data,headers=headers)

    try:
        rsp = opener.open(req)
        # 保存cookie到文件
        cookie.save(f,ignore_discard=True,ignore_expires=True)
        html = rsp.read().decode()
        print(html)
    except error.URLError as f:
        print(e)

def getInfo():

    url = 'http://date.jobbole.com/wp-admin/admin-ajax.php'
    f = r'jobbole_cookie.txt'
    # 创建MozillaCookieJar实例对象
    cookie = cookiejar.MozillaCookieJar()
    # 从文件中读取cookie内容到变量
    cookie.load(f,ignore_discard=True,ignore_expires=True)
    handler = request.HTTPCookieProcessor(cookie)
    opener = request.build_opener(handler)

    data = {
        "action": "get_date_contact",
        "postId": "4965"
    }
    data = parse.urlencode(data).encode()
    headers = {
        "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36",
        "Connection": "keep-alive"
    }
    req = request.Request(url,data=data,headers=headers)

    try:
        rsp = opener.open(req)
        html = rsp.read()
        print(html)

        html = json.loads(html)
        print(html)

        with open('jobbo.html', 'w',encoding='utf-8') as f:
            f.write(str(html))
    except Exception as e:
        print(e)

if __name__=='__main__':
    login()
    getInfo()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值