Python을 엉망으로 만들고이 https://updates.opendns.com/nic/update?hostname= 을 사용하려고 합니다. URL에 도달하면 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다. 나는 주위를 둘러 보았고 암호 관리자에 대해 뭔가를 발견했기 때문에 이것을 생각해 냈습니다.
urll = "http://url.com"
username = "username"
password = "password"
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, urll, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
urllib2 = urllib2.build_opener(authhandler)
pagehandle = urllib.urlopen(urll)
print (pagehandle.read())
이 모든 것이 작동하지만 명령 줄을 통해 사용자 이름과 암호를 묻는 메시지가 표시되므로 사용자의 상호 작용이 필요합니다. 해당 값을 자동으로 입력하고 싶습니다. 내가 무엇을 잘못하고 있지?
귀하의 요청 URL은 "RESTRICTED"입니다.
이 코드를 시도하면 다음과 같이 알려줍니다.
import urllib2
theurl = 'https://updates.opendns.com/nic/update?hostname='
req = urllib2.Request(theurl)
try:
handle = urllib2.urlopen(req)
except IOError, e:
if hasattr(e, 'code'):
if e.code != 401:
print 'We got another error'
print e.code
else:
print e.headers
print e.headers['www-authenticate']
인증 헤더를 추가해야합니다. 자세한 내용은 http://www.voidspace.org.uk/python/articles/authentication.shtml을 참조하십시오.
또 다른 코드 예 : http://code.activestate.com/recipes/305288-http-basic-authentication/
POST 요청을 보내려면 다음을 시도하십시오.
import urllib
import urllib2
username = "username"
password = "password"
url = 'http://url.com/'
values = { 'username': username,'password': password }
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
result = response.read()
print result
참고 : 이것은 URL에 POST 요청을 보내는 방법의 예일뿐입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다