Python基础语法10:session

重点内容只有一个:用requests.session()创建session对象,相当于创建了一个特定的会话,帮我们自动保持了cookies。

例子:


import requests,json,csv
session = requests.session() 
#用requests.session()创建session对象,相当于创建了一个特定的会话,帮我们自动保持了cookies。
headers = {
    'Origin': 'http://wiki.qipeipu.net',
    'Referer': 'http://wiki.qipeipu.net/login.action',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'
    }  

def cookies_read():
    file = open('c:\\Users\\69505\Desktop\\cookies.csv', 'r',encoding='utf-8')
    #以reader读取模式,打开名为cookies.txt的文件。
    reader=csv.reader(file)
    cookies_text=''
    for row in reader:
        cookies_text=row[0]
        break
    cookies_dict = json.loads(cookies_text)
    #一开始用txt文件存放session信息,报错:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0),排查不出问题就用了csv
    #调用json模块的loads函数,把字符串转成字典。
    cookies = requests.utils.cookiejar_from_dict(cookies_dict)
    #把转成字典的cookies再转成cookies本来的格式。
    return (cookies)
    
    
def sign_in():
    url = 'http://.....net/dologin.action'
    data = {
        'pwd': '22.....922',
        'warehouse': '6-7-139-71-88-400',
        'os_username': '.....',
        'os_password': '....',
        'login': '登录'
        }
    session.post(url, headers=headers, data=data)
    cookies_dict = requests.utils.dict_from_cookiejar(session.cookies)
    #把cookies转化成字典。
    #打印cookies_dict
    cookies_str = json.dumps(cookies_dict)
    #调用json模块的dumps函数,把cookies从字典再转成字符串。
    #打印cookies_str
    file=open('c:\\Users\\69505\Desktop\\cookies.csv', 'w',encoding='utf-8')
    writer=csv.writer(file)
    #创建名为cookies.txt的文件,以写入模式写入内容。
    writer.writerow([cookies_str])
    #把已经转成字符串的cookies写入文件。
    file.close()

     

def write_message():
    url='http://wiki.qipeipu.net/pages/viewpage.action'
    params={
        'pageId': "26619193"
        }
    response=session.get(url,headers=headers,params=params)
    return response

try:
    session.cookies = cookies_read()
except FileNotFoundError:
    sign_in()
session.cookies = cookies_read()
num = write_message()
if num.status_code == 200:
    print('成功啦!')
else:
    sign_in()
    session.cookies = cookies_read()
    num = write_message()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值