2010-08-31 35 views
2

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

这是包含在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>'); 

任何信息将帮助这一点。

回答

4

这对于浏览器模块来说是不可能的。所有web浏览器都提供了一种简单的方法来识别默认的Web浏览器并向其提供URL。

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

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

,可以使用任何图书馆的下列组合来完成:

我的建议是:

  • 如果GPL许可证正常,请使用PyQt。
  • 如果GPL许可是不正常:
    • 对于Linux,使用PySide或PyGTK的与PyWebKitGTK(GTKMozEmbed重)
    • 对于Windows,使用的wxPython与wxIEHtmlWindow
    • 对于OSX,你必须去问别人。