在Python中打开网站框架或图像
我对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代码来去掉不需要的内容。
为此,你需要创建一个专门的网页浏览器,这个浏览器其实就是一个对话框,里面放着一个网页控件。
你可以使用以下任意组合的库来实现这个功能:
- PyQt 和它自带的 QtWebKit(GPL或商业授权,适用于Windows/Mac/Linux)
- PySide 和它自带的 QtWebKit(LGPL,适用于Linux)
- PyGTK 和 PyWebKitGTK(LGPL,Linux上很简单……对Windows或OSX不太了解)
- PyGTK 和 GTKMozEmbed(LGPL,Linux上很简单……对Windows或OSX不太了解)
- wxPython 和它自带的 wxIEHtmlWindow(类似BSD,适用于Windows。嵌入了Internet Explorer。)
- wxPython 和它自带的 wxWebKitCtrl(类似BSD,仅适用于OSX)
- wxPython 和 wxWebKit(类似BSD,适用于Windows/Mac/Linux)
我的建议是:
- 如果可以接受GPL授权,使用PyQt。
- 如果不可以接受GPL授权:
- 对于Linux,使用PySide或PyGTK配合PyWebKitGTK(GTKMozEmbed比较重)
- 对于Windows,使用wxPython配合wxIEHtmlWindow
- 对于OSX,你需要问其他人。