어떻게하니? 지정된 링크 (urllib 사용)를 입력하려고했지만 그렇게하려면 로그인해야합니다.
사이트에서 다음 소스가 있습니다.
<form id="login-form" action="auth/login" method="post">
<div>
<!--label for="rememberme">Remember me</label><input type="checkbox" class="remember" checked="checked" name="remember me" /-->
<label for="email" id="email-label" class="no-js">Email</label>
<input id="email-email" type="text" name="handle" value="" autocomplete="off" />
<label for="combination" id="combo-label" class="no-js">Combination</label>
<input id="password-clear" type="text" value="Combination" autocomplete="off" />
<input id="password-password" type="password" name="password" value="" autocomplete="off" />
<input id="sumbitLogin" class="signin" type="submit" value="Sign In" />
이것이 가능한가?
답변
능직 을 사용하고 싶을 수도 있습니다 . 사용하기 매우 쉽고 원하는 것을 할 수 있어야합니다.
다음과 같이 표시됩니다.
from twill.commands import *
go('http://example.org')
fv("1", "email-email", "blabla.com")
fv("1", "password-clear", "testpass")
submit('0')
당신은 사용할 수 있습니다 showforms()
당신이 사용되면 모든 형태의 목록에 go…
당신이 로그인 할 사이트로 이동 할 수 있습니다. 파이썬 인터프리터에서 시도하십시오.
답변
간단하게 만들어 보겠습니다. 사이트의 URL이 www.example.com이고 사용자 이름과 비밀번호를 입력하여 가입해야하므로 http://www.example.com/login 이라는 로그인 페이지로 이동합니다 . .php 이제 소스 코드를보고 다음과 같은 형식 태그에있는 작업 URL을 검색합니다.
<form name="loginform" method="post" action="userinfo.php">
이제 userinfo.php를 사용하여 ‘ http://example.com/userinfo.php ‘ 가 될 절대 URL을 만들고 이제 간단한 파이썬 스크립트를 실행하십시오.
import requests
url = 'http://example.com/userinfo.php'
values = {'username': 'user',
'password': 'pass'}
r = requests.post(url, data=values)
print r.content
언젠가 누군가에게 도움이되기를 바랍니다.
답변
일반적으로 사이트에 로그인하려면 쿠키가 필요합니다. 이는 cookielib, urllib 및 urllib2를 의미합니다. 다음은 내가 Facebook 웹 게임을 할 때 답장 한 수업입니다.
import cookielib
import urllib
import urllib2
# set these to whatever your fb account is
fb_username = "your@facebook.login"
fb_password = "secretpassword"
class WebGamePlayer(object):
def __init__(self, login, password):
""" Start up... """
self.login = login
self.password = password
self.cj = cookielib.CookieJar()
self.opener = urllib2.build_opener(
urllib2.HTTPRedirectHandler(),
urllib2.HTTPHandler(debuglevel=0),
urllib2.HTTPSHandler(debuglevel=0),
urllib2.HTTPCookieProcessor(self.cj)
)
self.opener.addheaders = [
('User-agent', ('Mozilla/4.0 (compatible; MSIE 6.0; '
'Windows NT 5.2; .NET CLR 1.1.4322)'))
]
# need this twice - once to set cookies, once to log in...
self.loginToFacebook()
self.loginToFacebook()
def loginToFacebook(self):
"""
Handle login. This should populate our cookie jar.
"""
login_data = urllib.urlencode({
'email' : self.login,
'pass' : self.password,
})
response = self.opener.open("https://login.facebook.com/login.php", login_data)
return ''.join(response.readlines())
HTTPS 또는 리디렉션 처리기가 반드시 필요하지는 않지만 아프지 않으며 오프너를 훨씬 더 강력하게 만듭니다. 쿠키가 필요하지 않을 수도 있지만 게시 한 양식만으로는 알 수 없습니다. 나는 당신이 순전히 주석 처리 된 ‘내 기억하기’입력에서 그럴 것이라고 생각합니다.
답변
import cookielib
import urllib
import urllib2
url = 'http://www.someserver.com/auth/login'
values = {'email-email' : 'john@example.com',
'password-clear' : 'Combination',
'password-password' : 'mypassword' }
data = urllib.urlencode(values)
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(
urllib2.HTTPRedirectHandler(),
urllib2.HTTPHandler(debuglevel=0),
urllib2.HTTPSHandler(debuglevel=0),
urllib2.HTTPCookieProcessor(cookies))
response = opener.open(url, data)
the_page = response.read()
http_headers = response.info()
# The login cookies should be contained in the cookies variable
자세한 내용은 https://docs.python.org/2/library/urllib2.html을 방문하십시오.
답변
웹 페이지 자동화? 확실히 “웹봇”
webbot
동적으로 변경되는 ID 및 클래스 이름이 있고 셀레늄 또는 기계화보다 더 많은 방법과 기능을 가진 웹 페이지도 작동합니다.
다음은 스 니펫입니다. 🙂
from webbot import Browser
web = Browser()
web.go_to('google.com')
web.click('Sign in')
web.type('mymail@gmail.com' , into='Email')
web.click('NEXT' , tag='span')
web.type('mypassword' , into='Password' , id='passwordFieldId') # specific selection
web.click('NEXT' , tag='span') # you are logged in ^_^
문서는 또한 매우 간단하고 사용하기 쉽습니다 : https://webbot.readthedocs.io
답변
일반적으로 웹 사이트는 여러 가지 방법으로 승인을 확인할 수 있지만 타겟팅하는 웹 사이트를 통해 합리적으로 쉽게 확인할 수 있습니다.
당신이 필요로하는 것입니다 POST
받는 사람 auth/login
(레이블을 잊지 URL 당신이 볼 수있는 다양한 분야와 형태로 인코딩 된 BLOB for
인간의 방문객들이있는 거 장식,). handle=whatever&password-clear=pwd
핸들 (일명 이메일)과 비밀번호의 값을 아는 한 괜찮습니다.
아마도 POST는 Set-Cookie
세션의 유효성을 검사 하는 헤더 가있는 일부 “성공적으로 로그인했습니다”페이지로 리디렉션 할 것 입니다 (쿠키를 저장하고 세션을 따라 추가 상호 작용시 다시 보내십시오!).