python - python处理JS并循环获取数据
问题描述
我有一些复杂的 JS 数据,我需要一些帮助来循环和提取数据,这里是 JS:
score = 0;
var AnswerRight = false;
AnswerRight = false;
if ($('input[name=Guess1]').val() != "") {
if (trim($('input[name=Guess1]').val().toUpperCase()) == '7Y-6') {
AnswerRight = true;
}
}
if ($('input[name=Guess1]').val() != "") {
if (trim($('input[name=Guess1]').val().toUpperCase()) == '-6+7Y') {
AnswerRight = true;
}
}
if ($('input[name=Guess1]').val() != "") {
if (trim($('input[name=Guess1]').val().toUpperCase()) == 'F(Y)=7Y-6') {
AnswerRight = true;
}
}
if ($('input[name=Guess1]').val() != "") {
if (AnswerRight) {
$('#tick1').show();
$('#cross1').hide();
score = score + 1;
} else {
$('#tick1').hide();
$('#cross1').show();
}
}
AnswerRight = false;
if ($('input[name=Guess2]').val() != "") {
if (trim($('input[name=Guess2]').val().toUpperCase()) == '-27') {
AnswerRight = true;
}
}
if ($('input[name=Guess2]').val() != "") {
if (AnswerRight) {
$('#tick2').show();
$('#cross2').hide();
score = score + 1;
} else {
$('#tick2').hide();
$('#cross2').show();
}
}
AnswerRight = false;
if ($('input[name=Guess3]').val() != "") {
if (trim($('input[name=Guess3]').val().toUpperCase()) == '-18') {
AnswerRight = true;
}
}
if ($('input[name=Guess3]').val() != "") {
if (AnswerRight) {
$('#tick3').show();
$('#cross3').hide();
score = score + 1;
} else {
$('#tick3').hide();
$('#cross3').show();
}
}
AnswerRight = false;
if ($('input[name=Guess4]').val() != "") {
if (trim($('input[name=Guess4]').val().toUpperCase()) == '4') {
AnswerRight = true;
}
}
if ($('input[name=Guess4]').val() != "") {
if (AnswerRight) {
$('#tick4').show();
$('#cross4').hide();
score = score + 1;
} else {
$('#tick4').hide();
$('#cross4').show();
}
}
AnswerRight = false;
if ($('input[name=Guess5]').val() != "") {
if (trim($('input[name=Guess5]').val().toUpperCase()) == '7') {
AnswerRight = true;
}
}
if ($('input[name=Guess5]').val() != "") {
if (AnswerRight) {
$('#tick5').show();
$('#cross5').hide();
score = score + 1;
} else {
$('#tick5').hide();
$('#cross5').show();
}
}
AnswerRight = false;
if ($('input[name=Guess6]').val() != "") {
if (trim($('input[name=Guess6]').val().toUpperCase()) == '4') {
AnswerRight = true;
}
}
if ($('input[name=Guess6]').val() != "") {
if (AnswerRight) {
$('#tick6').show();
$('#cross6').hide();
score = score + 1;
} else {
$('#tick6').hide();
$('#cross6').show();
}
}
AnswerRight = false;
if ($('input[name=Guess7]').val() != "") {
if (trim($('input[name=Guess7]').val().toUpperCase()) == '9X+96') {
AnswerRight = true;
}
}
if ($('input[name=Guess7]').val() != "") {
if (trim($('input[name=Guess7]').val().toUpperCase()) == '3(3X+32)') {
AnswerRight = true;
}
}
if ($('input[name=Guess7]').val() != "") {
if (AnswerRight) {
$('#tick7').show();
$('#cross7').hide();
score = score + 1;
} else {
$('#tick7').hide();
$('#cross7').show();
}
}
AnswerRight = false;
if ($('input[name=Guess8]').val() != "") {
if (trim($('input[name=Guess8]').val().toUpperCase()) == '9X²-2X+7') {
AnswerRight = true;
}
}
if ($('input[name=Guess8]').val() != "") {
if (AnswerRight) {
$('#tick8').show();
$('#cross8').hide();
score = score + 1;
} else {
$('#tick8').hide();
$('#cross8').show();
}
}
AnswerRight = false;
if ($('input[name=Guess9]').val() != "") {
if (trim($('input[name=Guess9]').val().toUpperCase()) == '4(X²-10X+32)') {
AnswerRight = true;
}
}
if ($('input[name=Guess9]').val() != "") {
if (trim($('input[name=Guess9]').val().toUpperCase()) == '4X²-40X+128') {
AnswerRight = true;
}
}
if ($('input[name=Guess9]').val() != "") {
if (AnswerRight) {
$('#tick9').show();
$('#cross9').hide();
score = score + 1;
} else {
$('#tick9').hide();
$('#cross9').show();
}
}
AnswerRight = false;
if ($('input[name=Guess10]').val() != "") {
if (trim($('input[name=Guess10]').val().toUpperCase()) == '12') {
AnswerRight = true;
}
}
if ($('input[name=Guess10]').val() != "") {
if (AnswerRight) {
$('#tick10').show();
$('#cross10').hide();
score = score + 1;
} else {
$('#tick10').hide();
$('#cross10').show();
}
}
AnswerRight = false;
if ($('input[name=Guess11]').val() != "") {
if (trim($('input[name=Guess11]').val().toUpperCase()) == '6') {
AnswerRight = true;
}
}
if ($('input[name=Guess11]').val() != "") {
if (AnswerRight) {
$('#tick11').show();
$('#cross11').hide();
score = score + 1;
} else {
$('#tick11').hide();
$('#cross11').show();
}
}
AnswerRight = false;
if ($('input[name=Guess12]').val() != "") {
if (trim($('input[name=Guess12]').val().toUpperCase()) == '-1') {
AnswerRight = true;
}
}
if ($('input[name=Guess12]').val() != "") {
if (AnswerRight) {
$('#tick12').show();
$('#cross12').hide();
score = score + 1;
} else {
$('#tick12').hide();
$('#cross12').show();
}
}
if (score < 12) {
$('#Checkbutton').text('Check again').css({'width':'150px'});
}
if (score >= 9) {
$('#Trophybutton').show();
$('#Trophybutton').val('Claim Your Trophy for ' + score + ' out of 12');
}
if(score==12) {
$('#Checkbutton').hide();
}
}
我将举一个我想抓取的例子,这样你就可以看到每个问题都被命名为 Guess,然后是一个数字,这样你就可以看到:
if ($('input[name=Guess1]').val() != "") {
if (trim($('input[name=Guess1]').val().toUpperCase()) == '7Y-6') {
AnswerRight = true;
}
}
所以我想获得价值 7y-6
但是您可以在上面的代码中看到猜测 1 的更多答案,例如 -6+7y,因为它可以通过多种方式解决,但是我只想要每个问题的第一个答案:
所以我想得到的下一个问题答案是:
if ($('input[name=Guess2]').val() != "") {
if (trim($('input[name=Guess2]').val().toUpperCase()) == '-27') {
AnswerRight = true;
}
}
我想提取的值是-27
我想对那里的每个问题都这样做,所以循环遍历每个问题,然后显示然后打印出答案。
我该怎么做?我在想正则表达式 - 我已经尝试过,但它对我不起作用哈哈哈。
解决方案
你可以使用这个:Guess\d{1,3}.*?==\s\'(.*?)\'
代码
import re
answers = re.findall(r"Guess\d{1,3}.*?==\s\'(.*?)\'", js_text_code)
假设你有代码在js_text_code
.
answers
将是这样的列表:
['7Y-6', '-6+7Y', ... ]
图案说明
Guess
: 文字“猜测”\d{1,3}
:一位、两位或三位数字(假设此数字可能至少为三位数字).*?==
: 直到第一个字符==
\s
: 空间。\'
: 开放的简单报价。(.*?)\'
:直到第一个闭合的简单引号之前的任何字符。并制作一组这样的角色(这是你想要的部分)。
推荐阅读
- java - 在运行时获取错误 jar 不存在
- api - 如何在 SOAP Web 服务中设计标头信息?
- jboss - 是否可以在 jBPM 中集成 Salesforce 或 facebook
- mule - mule 中 APIkit 和 APIkit 控制台组件的区别?
- javascript - 如果选中复选框,如何更改背景颜色,由 id 选择
- ios - 具有动态高度的 TableViewHeader
- python - 无法解码 JSON 对象,但输入为 JSON 格式
- yaml - YAML 用于字符串内的 tmuxinator 映射值
- reactjs - 成功操作后重定向到特定页面 - Redux saga
- mysql - 我想做json数据