我正在尝试编写一个脚本,以便我可以登录到一个网站,但为了做到这一点,我需要提供验证码。从URL获取验证码的直接图像的唯一方法是提取巨型字符串名称“challenge”,但由于某种原因我无法使用BeautifulSoup。提取长字符串的最佳方法是什么?
var RecaptchaState = {
site : '4LfjPgEA56AABAJExraAeYXdMbVhPcG__Hyv-URXF',
challenge : '03AHJ_VusE_PgNB0vfBpD2h53o8uGMt1MeKi9bzhOTsjt0ze7SKmHVNe8uADceoU3JLPjpp8cJCVDGiYKo1ho-r1JcV19tm26doUHqevixJjH8SZ26i4EWbUOQLEuODf0Kt6JI0ZhtfiIaIXDg9MhUyDCEt_qxFWbSHA',
is_incorrect : false,
programming_error : '',
error_message : '',
server : 'http://www.google.com/recaptcha/api/',
timeout : 18000
};
document.write('
<scr>
');
</scr>
答案 0 :(得分:0)
BeautifulSoup不解析js,你需要使用正则表达式或类似的方法。
答案 1 :(得分:0)
我只是使用正则表达式。不确定这一点,但我不认为beautifulsoup解析javascript - only(x)html:
challenge = re.search(r"challenge *: *'(\S+)'", x).group(1)
给予:
'03AHJ_VusE_PgNB0vfBpD2h53o8uGMt1MeKi9bzhOTsjt0ze7SKmHVNe8uADceoU3JLPjpp8cJCVDGiYKo1ho-r1JcV19tm26doUHqevixJjH8SZ26i4EWbUOQLEuODf0Kt6JI0ZhtfiIaIXDg9MhUyDCEt_qxFWbSHA'