로그인이 완료된 기계화 스크립트가 있습니다. 로그인 한 후 페이지에 기본 로그인 페이지로 가기 전에 먼저 리디렉션이 표시됩니다.기계어로 자바 스크립트 양식을 제출하는 방법은 무엇입니까?
redirect()를 실행하면 다시 로그인 페이지로 돌아갑니다. 왜?
login()을 실행하면이 페이지가 표시되지만 기본 페이지로 계속 진행해야합니다.
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
</title></head>
<body>
<form name="form1" method="post" action="tmp.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZCOgyU+AdP30f85W4DdUIV6LnCqa" />
</div>
<script type="text/javascript">
top.location.href = document.location.href;
document.forms["form1"].submit();
</script>
</form>
</body>
</html>
나는이 일에서 새로운 것을 해야할지 모르겠다.
첫 로그인에서 제공 한 이미 인증 된 데이터를 사용하여 어떻게 이런 종류의 양식을 제출합니까?
또한 인증 된 사용자와 함께 POST 데이터를 더 제출하는 방법은 무엇입니까? 지금까지
내 코드 :
import re
import mechanize
login_url = 'login.aspx'
def login(id, username, password):
br = mechanize.Browser()
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.open(login_url)
br.select_form(nr=0)
br.form.set_all_readonly(False)
br["__EVENTTARGET"] = "TransactBtn"
br["AccountID"] = id
br["UserName"] = username
br["Password"] = password
response = br.submit()
return response.geturl()
#after submitting this it goes to the redirect portal page then to the main page
def redirect(url):
#after login we submit the redirect portal to see the main page
br = mechanize.Browser()
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.open(url)
br.select_form(nr=0)
response = br.submit()
return response.read() #to the main
def dostuff():
#this will submit some data as POST with the authenticated user.
print redirect(login('myid', 'myusername', 'mypassword'))
이미 양식을 제출 중입니다. 실제로 문제는 무엇입니까? – polin
양식을 제출 한 후 response.read()는 리디렉션 페이지입니다. 이것은 이미 완료되었음을 의미합니까? 또한 인증 된 사용자를 사용하여 더 많은 데이터를 보내려면 어떻게해야합니까? 내가이 게시물을 삭제하고 싶다. 로그인 한 경우에만 그렇게 할 수 있습니다. 간단한 예제를 볼 수 있습니까? 감사. – user1855539