Кажется, aiohttp.ClientSession не публикует данные (имя пользователя, пароль, маркер входа), которые я им предоставляю - PullRequest
1 голос
/ 06 марта 2020

Я пытался перевести одну из моих программ в асинхронный режим c, но, похоже, сессия не публикует данные.

from aiohttp import ClientSession as Session
from bs4 import BeautifulSoup as BS
import asyncio

class Finder(Session):
    async def login(self, loginurl, homeurl, username, password):
        async def getlogintoken(loginurl):
            async with self.get(loginurl) as loginpage:
                return(BS(await loginpage.text(), 'html.parser').select('#login > input[type=hidden]:nth-child(3)')[0]['value'])

        async def postlogindata(loginurl, username, password, logintoken):
            await self.post(loginurl, data={'username': username, 'password': password, 'logintoken': logintoken})

        async def gethome(homeurl):
            async with self.get(homeurl) as homepage:
                print(homepage.url)

        logintoken = await getlogintoken(loginurl)
        print(logintoken)
        await postlogindata(loginurl, username, password, logintoken)
        await gethome(homeurl)

Это то, что у меня есть, и оно прекрасно работает с запросами (без всякой асин c вещи), но с aiohttp, похоже, не работает. Любая помощь будет принята с благодарностью!

...