【发布时间】:2021-03-28 06:12:33
【问题描述】:
所以我有这个验证码,我需要解决并使用 Requests Post 方法发送响应,但我不知道如何开始。
<form name="captchaForm" action="/captcha/eval.do" onsubmit="document.captchaForm.hash.value=window.location.hash;">
<img id="captchaTag" src="/captcha/captcha.do?id=132.204.251.80">
<audio id="audioCaptchaTag" style="display: none;" preload="auto" onplay="$('#captchaResponse').focus();" controls="" src="/captcha/audioCaptcha.do?id=132.204.251.80&lang=fr&cacheBuster=1aca7bbb658bf40435965772b3343124f" type="audio/wav"></audio>
<button id="toggleAudio" alt="Click here to access the audible captcha" type="button" onclick="$('#captchaTag').toggle(); $('#audioCaptchaTag').toggle(); $('#captchaResponse').focus(); "><i class="fas fa-headphones"></i></button>
<input autocapitalize="none" id="captchaResponse" style="margin: 0;" type="text" name="jcaptcha" value="" autofocus="">
<input type="hidden" name="path" value="/fr/qc/qcrdl/doc/2009/2009canlii97762/2009canlii97762.html">
<input type="hidden" name="queryString" value="">
<input type="hidden" name="hash" value="">
<input type="hidden" name="id" value="132.204.251.80">
<input type="submit" value="ok">
</form>
现在这是我的脚本,基本上我想用 Post 方法发送输入:
import requests
from bs4 import BeautifulSoup
import cv2
headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Max-Age': '3600',
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'
}
session = requests.Session()
req = session.get(url, headers=headers)
soup = BeautifulSoup(req.content, "lxml")
captcha = soup.find("form", {"name": "captchaForm"})
if captcha is None:
# Do stuff
else:
print(".......... YOU'VE HIT A CAPTCHA")
capatchaImage = soup.find("img",{"id":"captchaTag"}).get("src")
cv2.imshow("captcha", captchaImage)
cv2.waitKey()
captchaInput = input("Please enter captcha: "))
continue
【问题讨论】:
标签: python post captcha python-requests-html