我怎么可能在使用Python请求提交之前获得login_token和login_id的值呢?
<script>
jQuery(document).ready(
function($) {
$("#ibox_form").css("display", "block");
$(".noscript").css("display", "none");
try {
var fpPromise = import("/r/build/js/tii/1dc0524e24cc01f176e3cec8bd0af1e1cb_gb_fp.js").then(FingerprintJS => FingerprintJS.load());
fpPromise.then(fp => fp.get()).then(result => {
$("form[name='FormName']").append('<input name="browser_fp" type="hidden" value="'+result.visitorId+'" />');
});
} catch (e) {
console.error(e);
}
$("form[name='FormName'] input[name='email']").focus();
$("form[name='FormName']").submit(function(event) {
if ($("input[name='login_id']").length !== 1 && $("input[name='login_token']").length !== 1) {
$("form[name='FormName']").append('<input name="login_id" type="hidden" value="150EA3F6-FA3F-11ED-A6EB-E4CE65535679" />');
$("form[name='FormName']").append('<input name="login_token" type="hidden" value="6a83d1773c3256d1a5d26dc597c68975e27ea46e" />');
}
var recaptcha = document.getElementById("g-recaptcha-response");
if (recaptcha && recaptcha.value == "") {
var formIsValid = IP.control.AutoValidator.getFormValidator(document.FormName).isValid();
if (formIsValid) {
alert("You must check the box that proves you're not a robot.");
event.preventDefault();
return false;
}
} else if (localStorage) {
localStorage.setItem("login.start", new Date().getTime().toString());
}
});
}
);
</script>
网址是asp.net-“https://www.turnitin.com/login_page.asp?lang=en_us“
这是我的Python代码:
with requests.Session() as s:
data = {
'email': username,
'user_password': password,
}
s.headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36'
url = "https://www.turnitin.com/login_page.asp?lang=en_us"
res = s.post(url, data=data)
html_text = res.text
soup = BeautifulSoup(html_text, "lxml")
print(soup.find('input', {'name': 'login_token'}))
我目前正在使用beautiful soup,但我无法获得login_id和login_token的值。顺便说一句,URL来自asp.net
1条答案
按热度按时间zysjyyx41#
虽然您可以使用
bs4
定位并提取<script>
标记,但您可能无法从中获取值,因为这是一个jQuery
。但是,如果您只需要这些值,则可以使用
re
。例如,基于您的
sample_html
,尝试以下操作:这应该打印:
把这些放在一起: