문제

에 로그인하려고 합니다. http://www.steampowered.com Chrome 세션에서 얻은 쿠키를 사용하여 웹사이트를 방문합니다.

일단 다 잡고 나니 cookie 테이블의 데이터, 명령을 사용하여 SELECT * FROM cookie WHERE host_key LIKE '%steam%' 열 이름은 다음과 같습니다. PRAGMA table_info(cookie) 목록 이해를 사용하여 모든 데이터를 정렬했지만 모든 데이터를 다음으로 전달하는 방법을 모르겠습니다. requests 쿠키를 사용할 수 있게 됩니다.

그만큼 request'에스 문서 예를 들어 사전을 전달해야 한다고 말하면 cookies={'cookies':'are_working'} 하지만 몇 가지 열쇠는 names는 서로 덮어쓰기 때문에 name는 다음과 같습니다: Steam_Language, 호스트는 다르지만요.

편집하다:방금 찾았습니다 Python의 기존 cookielib CookieJar 인스턴스에 쿠키를 추가하는 방법은 무엇입니까? 도움이 될 수도 있지만 cookielib에 대한 Chrome 쿠키 형식을 지정하는 방법을 모르겠습니다.

내 질문은 다음과 같습니다 쿠키 가치가 있는 여러 다른 사이트를 어떻게 전달합니까? requests?

도움이 되었습니까?

해결책

내가 만들었다 Firefox에서 쿠키를 로드하는 모듈.

요청 사용 예:

import requests
import browser_cookie
cj = browser_cookie.firefox()
r = requests.get(url, cookies=cj)

다른 팁

HTTP 사양에서 의도적으로 금지하려는 작업을 수행하려고 한다는 점을 명심하세요(예:쿠키가 출처가 아닌 도메인에 쿠키를 보내는 것).그러니 처음부터 망할 수도 있습니다.그리고 설상가상으로, 증기 동력 장치의 로그인 방식을 대략적으로 살펴보았는데 작업이 완료되었습니다.

질문으로 돌아가서...

이제 Steam 기반 세션 쿠키가 유효하다고 가정하면(로그인 페이지에서 수행하는 암호화, 키 공유 및 보안 문자 방법을 기반으로 하지 않을 수 있음) 유효한 쿠키 사전을 다음과 같이 제공하여 요청 라이브러리에 로그인할 수 있습니다. 문서 상태.

my_cookies = {'cookiename1': 'cookievalue1', 'cookiename2': 'cookievalue2'}
response = requests.get(
    'http://www.steampowered.com/mystuff',
    cookies=my_cookies)

또한 쿠키를 가져오는 데이터베이스에 어떤 데이터가 저장되어 있는지는 모르지만 'Set-Cookie' 헤더(만료, 경로, 도메인 등).이는 사용자 에이전트(Chrome, IE, 요청 라이브러리 등)가 요청에서 보낼 쿠키를 결정하는 데 사용하는 정보이지만 요청에는 포함되지 않습니다.'쿠키' 헤더에는 이름=값 쌍만 있습니다.이것이 쿠키 사전에 제공해야 하는 전부입니다.

그리고 이름이 같은 쿠키가 두 개 있으면 하나만 선택하세요.결국에는 하나만 평가될 가능성이 높으며, 그렇지 않으면 서버는 단순히 오류를 반환할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top