从父母到孩子的分享会话

时间:2017-06-22 20:54:49

标签: python-3.x oop python-requests

我有一个包含会话和一些API端点的父类。 该课程如下:

class pdAPI(object):
    def __init__(self, username, password):
        self.username = username
        self.password = password
        self.api = {
            'home': 'https://example.com',
            'members': 'https://members.example.com',
            'login': 'https://example.com/login',
            'account': 'https://example.com/account',
            'videos': 'https://example.com/videos/'
        }
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36'
        }
        self.session = requests.Session()
        self.videos = []


    def login(self):
        payload = {'LoginFormFrontend[username]': self.username,
                   'LoginFormFrontend[password]': self.password
                   }
        print(payload)
        self.session.headers.update(self.headers)
        self.session.get(self.api['home'])
        self.session.post(self.api['login'], data=payload)
        account = self.session.get(self.api['account'])
        soup = BeautifulSoup(account.text, 'html.parser')
        try:
            if self.username == soup.find('p', {'class': 'name'}).string:
                print('successfully logged in')
            else:
                raise LoginError
        except:
            print('Login failed')

因此,当我说test = pdAPI('username', 'password')然后test.login()时,我的会话与登录信息将包含在test对象中。现在我有另一个子类,需要使用sessionapi

目前我有这个:

class Video(object):
    def __init__(self, link=''):
        def __init__(self):
            super(Video, self).__init__()
            self.link = link

    def tags(self):
        g = self.session.get(self.link)
        print(g.text)

我想做的是,不确定是否可能,就是这样做:

video = test.Video(link='http://somelink.com')

看到test对象已包含session。但是,能够使用pdAPIVideo的会话已经足够了。

0 个答案:

没有答案