액세스하려는 API에서 인증을 받으려고합니다. urllib.parse.urlencode를 사용하여 내 URL에있는 매개 변수를 인코딩합니다. urllib.request.urlopen을 사용하여 내용을 가져옵니다.Python Urllib Urlopen은 새 줄 다음에 반환되지 않습니까?
SID=AAAAAAAAAAA
LSID=BBBBBBBBBBB
AUTH=CCCCCCCCCCC
문제는 그것이 첫 번째 값을 반환하고, 후행 줄 바꾸기 문자 :
이
같은 서버에서 3 개 값을 반환해야합니다.import urllib.request
import urllib.parse
Emailparamx = 'Email'
Emailparam = Emailparamx.encode('utf-8')
email = '[email protected]'
email = email.encode('utf-8')
Passwdparam = 'Passwd'
Passwdparam = Passwdparam.encode('utf-8')
password = 'hidden'
password = password.encode('utf-8')
Accounttypeparam = 'accountType'
Accounttypeparam = Accounttypeparam.encode('utf-8')
accounttype = 'GOOGLE'
accounttype = accounttype.encode('utf-8')
Serviceparam = 'service'
Serviceparam = Serviceparam.encode('utf-8')
service = 'adwords'
service = service.encode('utf-8')
url = 'https://accounts.google.com/ClientLogin?'
urlen = url.encode('utf-8')
data = [(Emailparamx, email), (Passwdparam, password),
(Accounttypeparam, accounttype), (Serviceparam, service)]
auth = ''
dataurl = urllib.parse.urlencode(data)
accessurl = (url + "%s" % dataurl)
fh = urllib.request.urlopen(accessurl)
equals = '='
eqenc = equals.encode('utf-8')
try:
msg = fh.readline().split(eqenc)
print (msg)
그리고 MSG는 인쇄는
[b'SID', b'AAAAAAAAAAAAAAAAA\n']
나는 파이썬에서 오래된 약 일주일있어, 그 일부 심각하게 추한 코드를 알고있다. 어떤 도움이라도 대단히 감사하겠습니다.
: 그래서, 함수에서 일을 마무리 할 수
는, 그 함수를 호출합니다. 예를 들어,'encoding = 'utf-8 ''을 사용하여'str'을'urlencode'로 전달하는 대신에, 왜 각 조각을 하나씩 UTF-8로 인코딩합니까? 그리고 왜''% s "% dataurl' 대신에''dataurl''입니까? 이것으로 여러분은 아마이 코드를 (아주 좋지 않은) 튜토리얼 (아마도 2.x 튜토리얼에서 3.x로 직접 포팅하려 했음)에서 빌린 것처럼 보입니다. 그렇다면 튜토리얼에서 얻은 정보를 알려 주시면 더 많은 정보를 얻을 수 있습니다. – abarnert
또한 [ClientLogin은 1 년 넘게 사용 중지되었습니다] (https://developers.google.com/accounts/docs/AuthForInstalledApps), CL이 아닌 OAuth 또는 OAuth2를 사용하는 방법을 실제로 배우고 있어야합니다. – abarnert
마지막으로, 이것은 실제 코드가 될 수 없습니다. 왜냐하면'except' 나'finally'가없는'try'가'SyntaxError'를 발생시킬 것이기 때문입니다. – abarnert