python 아 날로 그 폼 로그 인 도서관 제출
아 날로 그 폼 제출 원리:
우 리 는 모두 Http 가 무상 태 라 는 것 을 알 고 있 기 때문에 우리 가 제출 한 데이터 가 브 라 우 저 에서 정상적으로 제출 한 것 과 같 으 면 서버 는 브 라 우 저 와 같은 응답 을 되 돌려 줍 니 다.그래서 저 희 는 브 라 우 저 폼 을 모 의 해서 광동공업대학 에 등록 한 도서관 에 제출 합 니 다.http://222.200.122.171:7771/login.aspx쿠키 를 가 져 옵 니 다.저 희 는 다음 에 도서관 사이트 의 다른 페이지 를 방문 할 때 이 쿠키 를 가 져 옵 니 다.서버 는 제 가 이미 로그 인 한 사용자 라 고 생각 하고 데 이 터 를 정상적으로 되 돌려 줍 니 다.
우선 웹 브 라 우 저 로 페이지 소스 코드 를 보고 제출 할 form 폼 을 찾 습 니 다.
다음은 폼 에 있 는 input 에 hidden 을 포함 합 니 다.hidden 도 폼 과 함께 제출 하기 때 문 입 니 다.계 정과 비밀번호 에 해당 하 는 name 을 찾 습 니 다. 그때 우 리 는 자신의 계좌 로 기입 해 야 한다.
제출 할 양식 내용 을 모두 가 져 온 후 계 정과 비밀 번 호 를 자신의 계 정과 비밀번호 로 바 꾸 어 요청 을 제출 합 니 다.쿠키 를 가 져 와 쿠키 에 저장 합 니 다.
코드 는 다음 과 같 습 니 다(Python 2.7 버 전과 Python 3 모두 차이 가 많 지 않 습 니 다).
# -*- coding:utf-8 -*-
import urllib
import urllib2
import cookielib
import bs4
result = urllib2.urlopen("http://222.200.122.171:7771/login.aspx")
soup = bs4.BeautifulSoup(result, "html.parser")
logindiv = soup.find("form", attrs={"name": "aspnetForm"})
Allinput = logindiv.findAll("input")
inputData = {}
for oneinput in Allinput:
if oneinput.has_attr('name'):
if oneinput.has_attr('value'):
inputData[oneinput['name']] = oneinput['value']
else:
inputData[oneinput['name']] = ""
inputData['ctl00$ContentPlaceHolder1$txtPas_Lib'] = '*****'
inputData['ctl00$ContentPlaceHolder1$txtUsername_Lib'] = '*******'
filename = 'cookie.txt'
# MozillaCookieJar cookie,
cookie = cookielib.MozillaCookieJar(filename)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
postdata = urllib.urlencode(inputData)
result2 = opener.open("http://222.200.122.171:7771/login.aspx", postdata)
cookie.save(ignore_discard=True, ignore_expires=True)
# url
bookUrl = "http://222.200.122.171:7771/user/userinfo.aspx"
result=opener.open(bookUrl)
print result.read()
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.