Python 에서 인증 없 이 콘 텐 츠 페이지 로 이동 하 는 인 스 턴 스 코드
자주 사용 하 는 해답 사이트 인 학교 에 다 니 세 요.예 를 들 어 사이트 에서 답 페이지 를 클릭 하면 검증 후에 야 힌트 를 볼 수 있 습 니 다.다음은 python 을 사용 하여 인증 코드 를 건 너 뛰 는 것 을 실현 합 니 다.
저 희 는 python 구 조 를 통 해 무 작위 로 X-Forward-for 정 보 를 통 해 ASP 사이트 의 IP 검 사 를 돌아 야 합 니 다.입력 한 사이트 의 정확성 을 검사 하고 인증 코드 의 검 사 를 통과 하지 못 할 때의 처리 등 을 실현 할 수 있 습 니 다.
python 인증 면제 페이지 코드 는 다음 과 같 습 니 다.
#
# :https://www.shangxueba.com/ask
import os
import random
import requests
import urllib3
urllib3.disable_warnings() # https , :https://www.cnblogs.com/ljfight/p/9577783.html
from bs4 import BeautifulSoup
from PIL import Image
def get_verifynum(session): # , 。
r = session.get("https://www.shangxueba.com/ask/VerifyCode2.aspx", verify=False) # HTTPS SSL SSL , verify=False。 :https://www.cnblogs.com/ljfight/p/9577783.html
with open('temp.png','wb+') as f:
f.write(r.content)
image = Image.open('temp.png')
image.show() # , , temp.png 。
verifynum = input("
:")
image.close()
os.remove("temp.png")
return verifynum
def get_question(session):
r = session.get(link)
soup = BeautifulSoup(r.content, "html.parser")
description = soup.find(attrs={"name":"description"})['content'] #
return description
def get_answer(session, verifynum, dataid):
data1 = {
"Verify": verifynum,
"action": "CheckVerify",
}
session.post("https://www.shangxueba.com/ask/ajax/GetZuiJia.aspx", data=data1) #
data2 = {
"phone":"",
"dataid": dataid,
"action": "submitVerify",
"siteid": "1001",
"Verify": verifynum,
}
r = session.post("https://www.shangxueba.com/ask/ajax/GetZuiJia.aspx", data=data2)
soup = BeautifulSoup(r.content, "html.parser")
ans = soup.find('h6')
print("
" + '-'*45)
if(ans): #
print("
:" + get_question(session))
print(ans.text)
else:
print('
! !
')
print('-'*45)
if __name__ == '__main__':
s = requests.session()
while True:
s.headers.update({"X-Forwarded-For":"%d.%d.%d.%d"%(random.randint(120,125),random.randint(1,200),random.randint(1,200),random.randint(1,200))}) # , X-Forwarded-For ASP IP 。
link = input("
, :https://www.shangxueba.com/ask/8952241.html
:").strip() #
if(link[0:31] != "https://www.shangxueba.com/ask/" or link[-4:] != "html"):
print("
! !
")
continue
dataid = link.split("/")[-1].replace(r".html","") #
if(dataid.isdigit()): # ,dataid , , True False
verifynum = get_verifynum(s)
get_answer(s, verifynum, dataid)
else:
print("
! !
")
continue
메모:그 중에서 requests 와 beautifulsoup 두 라 이브 러 리 는 따로 설치 해 야 합 니 다.pip 방식 으로 설치 하 는 것 을 권장 합 니 다.pip install requests
pip install beautifulsoup4
Python 스 크 립 트 실행 절차:
우선 학교 에 다 니 는 것 을 복사 하 세 요.어떤 제목 의 인터넷 주 소 는 다음 과 같은 형식 입 니 다.
그리고 python 스 크 립 트 를 실행 하여 붙 여 넣 기 주 소 를 복사 합 니 다.
Enter 키 를 누 르 면 인증 코드 그림 을 temp.png 로 자동 으로 다운로드 한 다음 그림 을 읽 고 보 여 줍 니 다.같은 디 렉 터 리 에 있 는 temp.png 그림 을 수 동 으로 열 수도 있 습 니 다.
마지막 으로 명령 행 창 에 인증 코드 그림 의 계산 결 과 를 입력 하면 문제 의 상세 한 상황 과 정 답 을 얻 을 수 있 습 니 다.
파 이 썬 에서 인증 을 면제 하고 콘 텐 츠 페이지 로 넘 어 가 는 인 스 턴 스 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 이 어떻게 검증 을 면제 하고 콘 텐 츠 페이지 로 넘 어 가 는 지 에 관 한 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 저 를 많이 지지 해 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.