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

时间:2010-08-31 03:31:56

标签: python cookies browser urllib2

所以我对python相当流利,并且为网站自动化使用了urllib2和Cookies。我偶然发现了“webbrowser”模块,该模块可以在默认浏览器中打开一个URL。我想知道是否可以从该网址中选择一个对象并打开它。具体来说,我想打开一个“验证码”,以便用户可以输入它,并继续做其他事情。

这是包含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 个答案:

答案 0 :(得分:4)

使用webbrowser模块是不可能的。所有webbrowser都提供了一种识别默认Web浏览器并向其提供URL的简单方法。

如果你想渲染一个页面的一部分,你需要一些可以采用任意HTML片段的东西,或者在加载一个页面后可以注入一些Javascript以去掉不需要的元素。

为此,您需要的是构建一个特定于目的的Web浏览器,它只不过是一个包含Web小部件的对话框。

可以使用以下任何库组合来完成:

我的建议:

  • 如果GPL许可没问题,请使用PyQt。
  • 如果GPL许可不合适:
    • 对于Linux,使用PySide或PyGTK与PyWebKitGTK(GTKMozEmbed很重)
    • 对于Windows,请将wxPython与wxIEHtmlWindow
    • 一起使用
    • 对于OSX,你必须问别人。