在Python中打开网站框架或图像

2 投票
1 回答
1229 浏览
提问于 2025-04-16 03:30

我对Python还算熟悉,之前经常用urllib2和Cookies来做网站自动化。最近我发现了一个叫“webbrowser”的模块,它可以在你默认的浏览器中打开一个网址。我在想,能不能只选择这个网址中的一个特定内容来打开呢?具体来说,我想打开一个“验证码”,这样用户可以输入验证码,然后继续做其他事情。

这行代码里包含了验证码的HTML,我觉得是这样的:

script type="text/javascript" src="http://api.recaptcha.net/challenge?k=6LcZ-AAAAAAAANX-xwVtzow1f4RpSrbSViRUx9Js"></script>    <input type="submit" name="submitBtn" value="Submit" 

点击那个API链接会打开这个:

var RecaptchaState = {
    site : '6LcZ-AAAAAAAANX-xwVtzow1f4RpSrbSViRUx9Js',
    challenge : '03AHJ_VuvoUHPdfoXLsVHGa7a26GR9s9Y5dkyKmqk2XsJ1SdiwF_2u0SV_sKnr1artkpc-5MjUe7SYD40xr7sAyvikKwpFCQTBdKUFfl76UP6EbDhezoTC8B1X8fjixuIJ4wJhI6yTc8vlX4ioh6je9lwFbPXllbGh2w',
    is_incorrect : false,
    programming_error : '',
    error_message : '',
    server : 'http://www.google.com/recaptcha/api/',
    timeout : 18000
};

document.write('<scr'+'ipt type="text/javascript" s'+'rc="' + RecaptchaState.server + 'js/recaptcha.js"></scr'+'ipt>');

任何相关的信息都会对我有帮助。

1 个回答

4

用webbrowser模块是无法做到的。webbrowser模块的作用只是简单地帮助你找到默认的网页浏览器,并把网址传给它。

如果你想只显示网页的一部分,你需要一些可以处理任意HTML片段的工具,或者在加载网页后注入一些JavaScript代码来去掉不需要的内容。

为此,你需要创建一个专门的网页浏览器,这个浏览器其实就是一个对话框,里面放着一个网页控件。

你可以使用以下任意组合的库来实现这个功能:

我的建议是:

  • 如果可以接受GPL授权,使用PyQt。
  • 如果不可以接受GPL授权:
    • 对于Linux,使用PySide或PyGTK配合PyWebKitGTK(GTKMozEmbed比较重)
    • 对于Windows,使用wxPython配合wxIEHtmlWindow
    • 对于OSX,你需要问其他人。

撰写回答