복붙노트

[PYTHON] python : urllib2 urlopen 요청으로 쿠키를 보내는 방법

PYTHON

python : urllib2 urlopen 요청으로 쿠키를 보내는 방법

urllib2를 사용하여 URL을 열고 서버에 특정 쿠키 텍스트를 보내려고합니다. 예 : 사이트를 열려고합니다. 특정 쿠키와 함께 체스 문제를 해결합니다. 검색 = 1. 어떻게해야합니까?

나는 다음을 시도하고있다 :

import urllib2
(need to add cookie to the request somehow)
urllib2.urlopen("http://chess-problems.prg")

미리 감사드립니다.

해결법

  1. ==============================

    1.쿠키는 또 다른 HTTP 헤더 일뿐입니다.

    쿠키는 또 다른 HTTP 헤더 일뿐입니다.

    import urllib2
    opener = urllib2.build_opener()
    opener.addheaders.append(('Cookie', 'cookiename=cookievalue'))
    f = opener.open("http://example.com/")
    

    요청에 HTTP 헤더를 추가하는 다른 방법은 urllib2 예제를 참조하십시오.

    쿠키를 처리하는 방법에는 여러 가지가 있습니다. cookielib과 같은 일부 모듈은 웹 브라우저처럼 작동하려고합니다. 이전에 어떤 쿠키를 사용했는지 기억하고 다음 요청에서 자동으로 다시 보냅니다.

  2. ==============================

    2.아마도 cookielib.CookieJar를 사용하면 도움이 될 수 있습니다. 예를 들어 양식이 포함 된 페이지에 게시하는 경우 :

    아마도 cookielib.CookieJar를 사용하면 도움이 될 수 있습니다. 예를 들어 양식이 포함 된 페이지에 게시하는 경우 :

    import urllib2
    import urllib
    from cookielib import CookieJar
    
    cj = CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    # input-type values from the html form
    formdata = { "username" : username, "password": password, "form-id" : "1234" }
    data_encoded = urllib.urlencode(formdata)
    response = opener.open("https://page.com/login.php", data_encoded)
    content = response.read()
    

    편집하다:

    Piotr의 코멘트가 끝나면 조금 더 자세히 설명 할 것입니다. 문서에서 :

    따라서 CookieJar 인스턴스로 어떤 요청을 하든지 모든 쿠키는 자동으로 처리됩니다. 당신의 브라우저와 비슷합니다 :)

    내 경험으로 만 말할 수 있으며 99 % 쿠키 사용 사례는 쿠키를받은 다음 해당 세션의 모든 후속 요청과 함께 쿠키를 보내야합니다. 위의 코드는이를 처리하고 투명하게 처리합니다.

  3. ==============================

    3.요청이라는 훌륭한 HTTP 파이썬 라이브러리를 살펴볼 수 있습니다. 그것은 urllib2보다 HTTP를 포함하는 모든 작업을 좀 더 쉽게 만듭니다. 퀵 스타트 가이드의 쿠키 섹션에서 :

    요청이라는 훌륭한 HTTP 파이썬 라이브러리를 살펴볼 수 있습니다. 그것은 urllib2보다 HTTP를 포함하는 모든 작업을 좀 더 쉽게 만듭니다. 퀵 스타트 가이드의 쿠키 섹션에서 :

    >>> cookies = dict(cookies_are='working')
    
    >>> r = requests.get('http://httpbin.org/cookies', cookies=cookies)
    >>> r.text
    '{"cookies": {"cookies_are": "working"}}'
    
  4. ==============================

    4.cookielib을 사용하십시오. 링크 된 문서 페이지는 끝에 예제를 제공합니다. 여기에도 자습서가 있습니다.

    cookielib을 사용하십시오. 링크 된 문서 페이지는 끝에 예제를 제공합니다. 여기에도 자습서가 있습니다.

  5. from https://stackoverflow.com/questions/3334809/python-urllib2-how-to-send-cookie-with-urlopen-request by cc-by-sa and MIT license