解决服务器session限制的方法

当服务器限制用户一次只能session, 使用下面
 except AttributeError: 
    getrecord().ncirecord()
共用之前的session:
<requests.sessions.Session object at 0x7f25c1d38be0>
<requests.sessions.Session object at 0x7f25c1d38be0>



# -*- coding:utf-8 -*-

import requests
import re
from http.cookiejar import CookieJar
import json
from bs4 import BeautifulSoup
import datetime, pytz
import urllib3
import time


urllib3.disable_warnings(urllib3.exceptions.InsecurePlatformWarning)
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
s = requests.session()
s.cookies = CookieJar()
print(s)

user = "she**@cn.ibm.com"
passwd = "******"


class weblogin():
    def login(self):
        url = "https://*****.extnet.ibm.com/sim/signin"
        param = {}
        param["email"] = user
        param["password"] = passwd
        response = s.post(url, data=param, verify=False)
        return response

class getrecord():
    def __init__(self):
        self.response = weblogin().login()
        self.url = "https://******.extnet.ibm.com/sim/non-compliance-list"
        self.siouturl = "https://****.extnet.ibm.com/sim/sign-out"

    def ncirecord(self):
        try:
            html = s.get(self.url, verify=False).text
            soup = BeautifulSoup(html, "html.parser")
            #s.get(self.siouturl, verify=False)
            tab = soup.find("table").find("tbody").find_all("tr")
            ncilist = []
            for i in tab:
                NCI = i.find_all("td")
                Record_Id = NCI[0].get_text()
                Target_Dt = NCI[7].get_text()
                Rec_Type = NCI[1].get_text()
                Abstract = NCI[6].get_text()
                Owner = ""
                Acct_Alias = NCI[9].get_text()
                Platform = ""
                Change_Number = ""
                Status_Update = ""
                Rec_Status = NCI[2].get_text()
                Advisory_ID = ""
                Open_Dt = NCI[5].get_text()
                Severity_Desc = NCI[4].get_text()
                Applicability = ""
                secfixdb = ""
                ncirecord = [Record_Id, Target_Dt, Rec_Type, Abstract, Owner, Acct_Alias, Platform, Change_Number, Status_Update, Rec_Status, Advisory_ID, Open_Dt, Severity_Desc, Applicability, secfixdb]
                ncilist.append(ncirecord)
            print(ncilist)
            return ncilist
        except AttributeError:
            getrecord().ncirecord()

getrecord().ncirecord()

 

 

 

 

 

 

 

 

 

使用下面的except,

except AttributeError:

    url = "https://*****.extnet.ibm.com/sim/signin"

    param = {}

    param["email"] = user

    param["password"] = passwd

    s.post(url, data=param, verify=False)

    print(s)

    self.ncirecord()

>>>

得到的也是共用之前的session

<requests.sessions.Session object at 0x7f3650c7bdd8>
<requests.sessions.Session object at 0x7f3650c7bdd8>

# -*- coding:utf-8 -*-

import requests
import re
from http.cookiejar import CookieJar
import json
from bs4 import BeautifulSoup
import datetime, pytz
import urllib3
import time


urllib3.disable_warnings(urllib3.exceptions.InsecurePlatformWarning)
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
s = requests.session()
s.cookies = CookieJar()
print(s)

user = "ssdfh@cn.**.com"
passwd = "******"


class weblogin():
    def login(self):
        url = "https://*****.extnet.ibm.com/sim/signin"
        param = {}
        param["email"] = user
        param["password"] = passwd
        response = s.post(url, data=param, verify=False)
        return response

class getrecord():
    def __init__(self):
        self.response = weblogin().login()
        self.url = "https://****.extnet.ibm.com/sim/non-compliance-list"
        self.siouturl = "https://*****.extnet.ibm.com/sim/sign-out"

    def ncirecord(self):
        try:
            html = s.get(self.url, verify=False).text
            soup = BeautifulSoup(html, "html.parser")
            #s.get(self.siouturl, verify=False)
            tab = soup.find("table").find("tbody").find_all("tr")
            ncilist = []
            for i in tab:
                NCI = i.find_all("td")
                Record_Id = NCI[0].get_text()
                Target_Dt = NCI[7].get_text()
                Rec_Type = NCI[1].get_text()
                Abstract = NCI[6].get_text()
                Owner = ""
                Acct_Alias = NCI[9].get_text()
                Platform = ""
                Change_Number = ""
                Status_Update = ""
                Rec_Status = NCI[2].get_text()
                Advisory_ID = ""
                Open_Dt = NCI[5].get_text()
                Severity_Desc = NCI[4].get_text()
                Applicability = ""
                secfixdb = ""
                ncirecord = [Record_Id, Target_Dt, Rec_Type, Abstract, Owner, Acct_Alias, Platform, Change_Number, Status_Update, Rec_Status, Advisory_ID, Open_Dt, Severity_Desc, Applicability, secfixdb]
                ncilist.append(ncirecord)
            print(ncilist)
            return ncilist
        except AttributeError:
            url = "https://****.extnet.ibm.com/sim/signin"
            param = {}
            param["email"] = user
            param["password"] = passwd
            s.post(url, data=param, verify=False)
            print(s)
            self.ncirecord()

getrecord().ncirecord()

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值