>

aiohttp를 사용하여 브라우저에서 쿠키를 가져 오려고합니다. 문서와 인터넷 검색에서 aiohttp에서 쿠키를 설정하는 방법에 대한 기사 만 찾았습니다.

플라스크에서 간단하게 쿠키를 얻을 수 있습니다

cookie = request.cookies.get('name_of_cookie')
# do something with cookie

aiohttp를 사용하여 브라우저에서쿠키를 가져 오는 간단한 방법이 있습니까?

  • 답변 # 1

    와이즈 비즈

    이것이 간단한 지 확실하지 않지만 방법이 있습니다 :

    Is there a simple way to fetch the cookie from the browser using aiohttp?

    이 프로그램은 다음과 같은 출력을 생성합니다.

    import asyncio
    import aiohttp
    
    async def main():
    urls = [
        'http://httpbin.org/cookies/set?test=ok',
    ]
    for url in urls:
        async with aiohttp.ClientSession(cookie_jar=aiohttp.CookieJar()) as s:
          async with s.get(url) as r:
                print('JSON', await r.json())
                cookies = s.cookie_jar.filter_cookies('http://httpbin.org')
                for key, cookie in cookies.items():
                    print('Key: "%s", Value: "%s" % (cookie.key, cookie.value))
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
    
    

    https://aiohttp.readthedocs.io/en/stable/client_advanced.html#custom-cookies + https://docs.aiohttp.org/en/stable/client_advanced.html#cookie-jar

    이제 이전에 설정 한 쿠키를 사용하여 요청하려는 경우 :

    JSON: {'cookies': {'test': 'ok'}}
    Key: "test", Value: "ok"
    
    

    IP 주소로 구성된 호스트 부분이 포함 된 URL을 테스트하려면 import asyncio import aiohttp url = 'http://example.com' # Filtering for the cookie, saving it into a varibale async with aiohttp.ClientSession(cookie_jar=aiohttp.CookieJar()) as s: cookies = s.cookie_jar.filter_cookies('http://example.com') for key, cookie in cookies.items(): if key == 'test': cookie_value = cookie.value # Using the cookie value to do anything you want: # e.g. sending a weird request containing the cookie in the header instead. headers = {"Authorization": "Basic f'{cookie_value}'"} async with s.get(url, headers=headers) as r: print(await r.json()) loop = asyncio.get_event_loop() loop.run_until_complete(main()) 를 사용하십시오. https://github.com/aio-libs/aiohttp/issues/1183#issuecomment-247788489

  • 답변 # 2

    예에 따르면 쿠키는 플라스크에서와 같이 request.cookies에 dict로 저장됩니다. request.cookies.get ( 'name_of_cookie')는 동일하게 작동합니다.

    aiohttp 리포지토리의 예제 섹션에는 쿠키를 검색, 설정 및 삭제하는 방법을 보여주는 web_cookies.py 파일이 있습니다. 해당 스크립트에서 쿠키를 읽고 미리 형식이 지정된 문자열로 템플릿에 반환하는 섹션은 다음과 같습니다.

    aiohttp.ClientSession(cookie_jar=aiohttp.CookieJar(unsafe=True))
    
    

    from pprint import pformat from aiohttp import web tmpl = '''\ <html> <body> <a href="/login">Login</a><br/> <a href="/logout">Logout</a><br/> <pre>{}</pre> </body> </html>''' async def root(request): resp = web.Response(content_type='text/html') resp.text = tmpl.format(pformat(request.cookies)) return resp

  • 이전 python - ALAudioDevice"subscribe"메소드를 사용하여"process"함수를 호출하는 방법
  • 다음 javascript - 주어진 길이의 배열을 초기화하는 템플릿 리터럴