【问题标题】:How do I extract a long string of text from some JavaScript on a web page using BeautifulSoup?如何使用 BeautifulSoup 从网页上的某些 JavaScript 中提取一长串文本?
【发布时间】:2011-05-06 00:58:43
【问题描述】:

我正在尝试编写一个脚本,以便我可以登录一个网站,但为了做到这一点,我需要出示验证码。从 URL 中获取验证码的直接图像的唯一方法是提取巨大的字符串名称“挑战”,但由于某种原因,我无法使用 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>

【问题讨论】:

    标签: javascript python beautifulsoup


    【解决方案1】:

    我只想使用正则表达式。不确定这一点,但我不认为beautifulsoup 解析javascript--only (x)html:

    challenge = re.search(r"challenge *: *'(\S+)'", x).group(1)
    

    给:

    '03AHJ_VusE_PgNB0vfBpD2h53o8uGMt1MeKi9bzhOTsjt0ze7SKmHVNe8uADceoU3JLPjpp8cJCVDGiYKo1ho-r1JcV19tm26doUHqevixJjH8SZ26i4EWbUOQLEuODf0Kt6JI0ZhtfiIaIXDg9Shahxy'p>

    【讨论】:

      【解决方案2】:

      BeautifulSoup 不解析 js,你需要使用正则表达式或类似的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-04
        • 2019-10-22
        • 1970-01-01
        • 1970-01-01
        • 2019-11-15
        • 2014-01-16
        • 2016-06-03
        相关资源
        最近更新 更多