>  기사  >  백엔드 개발  >  Python을 사용하여 웹사이트에 로그인하는 방법에 대한 자세한 예

Python을 사용하여 웹사이트에 로그인하는 방법에 대한 자세한 예

Y2J
Y2J원래의
2017-04-25 09:55:182121검색

이 글에서는 Python 로그인 웹사이트 세부정보 및 예시에 대한 정보를 주로 소개합니다. 필요한 친구는

Python 로그인 웹사이트 세부정보 및 예시

를 참고하세요. 대부분의 포럼에서는 게시물을 캡처하고 분석하려면 먼저 로그인해야 합니다. 그렇지 않으면 해당 게시물을 볼 수 없습니다.

이는 HTTP 프로토콜이 상태 비저장 프로토콜이기 때문입니다. 현재 연결을 요청하는 사용자가 로그인되어 있는지 서버는 어떻게 알 수 있나요? 두 가지 방법이 있습니다.

  1. URI에서 세션 ID를 명시적으로 사용합니다.

  2. 쿠키를 사용하는 방법은 다음과 같습니다. 쿠키를 로컬에 보관하세요. 이 웹사이트를 계속 탐색하면 브라우저가 주소 요청과 함께 쿠키를 보냅니다.

 Python은 꽤 풍부한 모듈을 제공하기 때문에 이런 네트워크 작업은 몇 문장만으로 완성될 수 있습니다. QZZN 포럼에 로그인하는 것을 예로 들겠습니다. 실제로 다음 절차는 거의 모든 PHPWind 유형 포럼에 적용됩니다.

# -*- coding: GB2312 -*-
from urllib import urlencode
import cookielib, urllib2

# cookie
cj = cookielib.LWPCookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)

# Login
user_data = {'pwuser': '你的用户名',
       'pwpwd': '你的密码',
       'step':'2'
      }
url_data = urlencode(user_data)
login_r = opener.open("http://bbs.qzzn.com/login.php", url_data)

일부 의견:

  • urllib2는 분명히 urllib보다 고급 모듈이며 쿠키 사용 방법을 포함합니다.

  • urllib2에서는 각 클라이언트를 오프너로 추상화할 수 있으며, 각 오프너는 여러 핸들러를 추가하여 기능을 향상시킬 수 있습니다.

  • HTTPookieProcessor는 오프너 구성 시 핸들러로 지정되므로 이 핸들러는 Cookie를 지원합니다.

  • isntall_opener를 사용한 후 urlopen을 호출할 때 이 오프너가 사용됩니다.

  • 쿠키를 저장할 필요가 없다면 cj 매개변수는 생략 가능합니다.

  • user_data는 로그인에 필요한 정보를 저장합니다. 포럼에 로그인할 때 이 정보를 전달하세요.

  • urlencode의 기능은 user_data 사전을 "?pwuser=username&pwpwd=password" 형식으로 인코딩하는 것입니다. 이는 프로그램을 더 쉽게 읽을 수 있도록 하기 위한 것입니다.

마지막 질문은 pwuser 및 pwpwd와 같은 이름이 어디서 왔는지에 대한 것입니다. 이를 위해서는 로그인이 필요한 웹 페이지를 분석해야 합니다. 우리는 일반적인 로그인 인터페이스가 양식이라는 것을 알고 있으며, 발췌 내용은 다음과 같습니다:

<form action="login.php?" method="post" name="login" onSubmit="this.submit.disabled = true;"> 
<input type="hidden" value="" name="forward" /> 
<input type="hidden" value="http://bbs.qzzn.com/index.php" name="jumpurl" /> 
<input type="hidden" value="2" name="step" /> 
... 
<td width="20%" onclick="document.login.pwuser.focus();"><input type="radio" name="lgt" value="0" checked />用户名 <input type="radio" name="lgt" value="1" />UID</td> 
<td><input class="input" type="text" maxLength="20" name="pwuser" size="40" tabindex="1" /> <a href="reg1ster.php" rel="external nofollow" >马上注册</a></td> 
<td>密 码</td> 
<td><input class="input" type="password" maxLength="20" name="pwpwd" size="40" tabindex="2" /> <a href="sendpwd.php" rel="external nofollow" target="_blank">找回密码</a></td> 
... 
</form>

여기서 우리가 입력해야 하는 사용자 이름과 비밀번호는 pwuser 및 pwpwd에 해당하고 단계는 로그인에 해당하는 것을 볼 수 있습니다( 이것이 내가 시도한 것입니다).

이 포럼 양식은 post 메소드를 사용한다는 점에 유의하세요. get 메소드인 경우 이 문서의 메소드를 직접 열 수는 없지만 먼저 요청한 후 열어야 합니다. 자세한 내용은 매뉴얼을 참고해주세요...

위 내용은 Python을 사용하여 웹사이트에 로그인하는 방법에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.