Python下怎么使用和安装python mechanizee,新手,越详细越好

常用的python模块及安装方法(二)
常用的python模块及安装方法(二)
FROM;http://blog.csdn.net/hengcai001/archive//4166996.aspx
游戏3D&&pyglet、pythonOgre、&blender(c),k-3d(c++),vpython,panda3d
===============================================&<
Graphical interface
Graphical interface
Graphical interface
Graphical interface
Graphical interface
Tkinter 3000
Graphical interface
SQLAlchemy
kinterbasdb
MSN Messenger
MSN Messenger
MSN Messenger
VideoCapture
Sciences and Maths
Sciences and Maths
Sciences and Maths
Sciences and Maths
matplotlib
Beautiful Soup
Localisation
geoname.py
Serial port
Serial port
Parallel Port
pyParallel
PDA/GSM/Mobiles
PDA/GSM/Mobiles
Command line
Compiler backend
encryption&&
DES加密解密模块/des.html
类似lex/yacc但更简单的词法/语法分析器
Tkinter———— Python默认的图形界面接口。
Tkinter是一个和Tk接口的Python模块,Tkinter库 提供了对 Tk
API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John
Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复杂程序的开发,Tk工具包是和Tcl一起开发的,
目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件,如一个按钮、一个滚动条等。通过Tk提供的这些小部件,我们就可快速地进行GUI开
发。Perl、Scheme等语言也利用Tk库进行GUI开发。Tkinter是跨平台,在各种平台下都能使用。
Python Imaging
Library(PIL)————python提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显示。还能进
行一些图形效果的处理,如图形的放大、缩小和旋转等。是Python用户进行图象处理的强有力工具。
Pmw(Python
megawidgets)Python超级GUI组件集————一个在python中利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。
PyXML———— 用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C
DOM规范的。它包含以下内容:
xmlproc: 一个符合规范的XML解析器。
Expat: 一个快速的,非验证的XML解析器。 还有其他
和他同级别的还有 PyHtml PySGML
PyGame———— 用于多媒体开发和游戏软件开发的模块。
PyOpenGL————
模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。
NumPy、 NumArray和SAGE————
NumArray是Python的一个扩展库,主要用于处理任意维数的固定类型数组,简单说就是一个矩阵库。它的低层代码使用C来编写,所以速度的优势很
明显。NumPy是Numarray的后继者,用来代替NumArray。SAGE是基于NumPy和其他几个工具所整合成的数学软件包,目标是取代
Magma, Maple, Mathematica和Matlab 这类工具。
MySQLdb模块————
用于连接MySQL数据库。还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。
PyGTK ———— 用于python
GUI程序开发的GTK+库。GTK就是用来实现GIMP和Gnome的那个库。有了它,你完全可以自信的尝试自己制造Photoshop
PyQt ———— 用于python的Qt开发库。QT就是实现了KDE环境的那个库,由一系列的模块组成,有qt, qtcanvas,
qtgl, qtnetwork, qtsql, qttable, qtui and
qtxml,包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块,它包含一个QScintilla库。该库是
Scintillar编辑器类的Qt接口。
PyMedia ———— 用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg,
avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。
Psyco ———— 一个Python代码加速度器,可使Python代码的执行速度提高到与编译语言一样的水平。
Python-ldap ————
提供一组面向对象的API,可方便地在python中访问ldap目录服务,它基于OpenLDAP2.x。
smtplib模块 ———— 发送电子邮件。
ftplib模块 ————
定义了FTP类和一些方法,用以进行客户端的ftp编程。我们可用python编写一个自己的ftp客户端程序,用于下载文件或镜像站点。如果想了解ftp协议的详细内容,请参考RFC959。
xmpppy模块 ———— Jabber服务器采用开发的XMPP协议,Google
Talk也是采用XMPP协议的IM系统。在Python中有一个xmpppy模块支持该协议。也就是说,我们可以通过该模块与Jabber服务器通信,是不是很Cool。
原文地址:
============================================
&作者:赖勇浩()
如果你之前是&windows&程序员,用&MFC&或者&WIN32API&开发界面程序,那进入&Python&国度最好的&GUI&选择应该是&wxPython。它是&wxWidgets&的&Python
Bind,与&wxWidgets&的开发完美同步,最为重要的一点是它的消息机制与&MFC&颇为相似,以前在&MFC&的经验完全可以稍作变化就套用在&wxPython&上面。在&WIN32&开发中,最讨厌的一环肯定有&WM_SIZE&消息的处,在主窗口大小变化的时候,保持控件布局在&WIN32&是一件麻烦事。这件事情&wx&解决得非常完美,它的sizer&概念可以让我轻松地在不同窗口尺寸的情况下保持完美的控件布局。另外如果你已经讨厌了&MFC&的&doc-view&模型,wx&也可以给你一个新的选择;如果你非常喜欢&doc-view&模型,放心,在&wx&中仍然可以轻松实现,以前的思想依然可以在这里发挥余热。
wxPython&有两个封装,一个&PythonCard,另一个是&dabo。前者是&wxPython&的有限封装,不支持&wxPython&的全部特性,它的目标是让&wxPython&更加&Pythonic。后者比&PythonCard&要庞大不少,确切来说,它应该是一个三层架构的&C/S&模式的开发框架。如果你想开发基于数据库的应用(如&MIS、ERP&等)用&dabo&是一个不错的选择;另外,如果你之前习惯了&VB、VFP、Delphi&等&RAD&开发环境,dabo&并不比这些昂贵的工具差多少哦!
按照邪恶的&windows&思维,编写的应用如果不编译出一个&.exe&文件恐怕是算不得“软件”的,py2exe&作用正是把你的&.py&脚本变成&.exe&文件,通常它会把脚本打包到一个&.zip&文件中去,但也你可以通过修改&setup.py&脚本把所有的脚本、依赖的&dll&等全部打包到一个&exe&中去,看起来跟&VC、VB&编译出来的程序没有什么两样!
如果你的客户需要在&windows&下使用你的应用程序,py2exe&是你不可或缺的工具。我就是用它打包由
wxPython 写的小工具给公司里的游戏策划用的。
脚本的执行效率多少有点差强人意,虽然优化起来并不是难事,但如果有简单的方法,近乎不用修改源代码,那当然值得去关注一下。psyco&的神奇在于它只需要在代码的入口处调用短短两行代码,性能就能提升&40%&或更多,真可谓是立竿见影!
如果你的客户觉得你的程序有点慢,敬请不要急着去优化代码,psyco&或许能让他立即改变看法。psyco&堪称&Python&的&jit,有许多潜力可以挖掘,如果剩下来给你优化性能的时间已经不多,请马上去阅读它的手册,有许多招儿轻松优化性能。
PIL&是&Python&的图像处理库,我的看法是强到没得说,简单到没得说。它可以打开数十种图像格式,常见的&jpg/png/bmp&等当然不在话下;此外还提供许多图像处理函数,如图像增强、滤波算法等,详情可以参考我以前的一篇文章《用Python&做图像处理》()和《计算图像相似度》()。
这是&Python&对开源数据库&Mysql&的支持,官网在。支持&Mysql
3.23-5.1&全系列版本,Python&版本的要求是&2.3-2.5。MySQLdb&是&Python
API-2.0&的实现,现在已经很成熟了。最新的版本是&1.2.2&。
如果从事服务器开发,那少不得跟数据库连接池打交道,这时你可以使用&DBUtils&或&jonpy&两个开源程序库。其中&DBUtils&是一套数据库连接池库,而&jonpy&则包括了&CGI&以及数据库连接池等多个功能,请在阅读手册后选择合适的自己库。
pyprocessing&
Python&解释器里的&GIL(全局解释器锁)使得&Python&在多核时代有点尴尬——这个支持原生线程的脚本语言竟然不能通过多线程利用多个&CPU&内核同时并发计算。pyprocessing&没有尝试去除&GIL,而是剑走偏锋,尝试从多进程的方式来帮助&Python&走出困境。结果就是使用&pyprocessing&创建进程和进程间通信不仅像使用内置的&threading&模块那么简单,甚至还更加简单。pyprocessing&不仅可以通过本机&socket&和管道进行通信,而且封装得极为完美,它的&Queue&实现用起来跟内置的&Queue&没啥两样,但它是一个进程间共享的队列哦!
pyprocessing&在&py2.6&和&py3.0&中已经作为内置模块了,也算是开发社区对&pyprocessing&项目的肯定吧。如果你用&Python&开发服务器应用,特别是网络游戏这样的应用,pyprocessing&怎么可以不去关注一下!
发表评论:
TA的最新馆藏[转]&博客访问: 403293
博文数量: 116
博客积分: 10
博客等级: 民兵
技术积分: 1737
注册时间:
寻找严肃、沉默和专注的力量。
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Python/Ruby
& &&mechanize是对urllib2的部分功能的替换,能够更好的模拟浏览器行为,在web访问控制方面做得更全面。结合beautifulsoup和re模块,可以有效的解析web页面,我比较喜欢这种方法。
& & 下面主要总结了使用mechanize模拟浏览器的行为和几个例子(谷歌搜索,百度搜索和人人网登录等)
1.初始化并建立一个浏览器对象
& & 如果没有mechanize需要easy_install安装,以下代码建立浏览器对象并作了一些初始化设置,实际使用过程可以按需开关。其实只用默认的设置也可以完成基本任务。
#!/usr/bin/env python
import sys,mechanize
br = mechanize.Browser()
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
#Follows refresh 0 but not hangs on refresh > 0
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
#debugging?
br.set_debug_http(True)
br.set_debug_redirects(True)
br.set_debug_responses(True)
#User-Agent (this is cheating, ok?)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/ Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
2.模拟浏览器行为
& &&浏览器对象建立并初始化完毕之后即可使用了,下面给出几个例子(代码承接以上部分)
获取web网页
& &&分行打印可以逐个查看详细信息,就不赘述
r = br.open(sys.argv[1])
html = r.read()
print html
print br.response().read()
print br.title()
print r.info()
模拟谷歌和百度查询
& &&打印和选择forms,然后填写相应键值,通过post提交完成操作
for f in br.forms():
&&&&print f
br.select_form(nr=0)
& & 谷歌查询football
br.form['q'] = 'football'
br.submit()
print br.response().read()
& & 百度查询football
br.form['wd'] = 'football'
br.submit()
print br.response().read()
& &&相应键值名,可以通过打印查出
回退(Back)
& & 非常简单的操作,打印url即可验证是否回退
print br.geturl()
3.http基本认证
br.add_password('', 'username', 'password')
br.open('')
4.form认证
& & 以登陆人人网为例,打印forms可以查出用户名和密码键信息
br.select_form(nr = 0)
br['email'] = username
br['password'] = password
resp = self.br.submit()
5.cookie支持
& &&通过导入cookielib模块,并设置浏览器cookie,可以在需要认证的网络行为之后不用重复认证登陆。通过保存session cookie即可重新访问,Cookie Jar完成了该功能。
#!/usr/bin/env python
import mechanize, cookielib
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar()
6.proxy设置
设置http代理
br.set_proxies({"http":":8888"})
br.add_proxy_password("username", "password")
#Proxy and usrer/password
br.set_proxies({"http":"username::8888"})
阅读(16568) | 评论(1) | 转发(5) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。python 使用mechanize开展web网页交互 - Web前端当前位置:& &&&python 使用mechanize开展web网页交互python 使用mechanize开展web网页交互&&网友分享于:&&浏览:0次python 使用mechanize进行web网页交互1. 有状态的网页
  所谓有状态的网页就是区别于传统html的动态交互式页面,它与用户进行交互显示不同的结果。下面我以新浪邮箱的登陆界面为例:
  上面有一个用户登陆的表单,当我们输入正确地用户名密码之后,登陆成功转向邮箱操作窗口,否则给出错误信息。
2. 使用python中mechanize库进行处理
  使用mechanize库需要注意以下几个特点:
mechanize自动处理cookies。
要理解与网页交互的过程。
点击链接,填写和提交表单
2.1 登陆页面
  代码中要使用到mechanize库,如果没有安装的话可使用以下命令进行安装。
  sudo pip install mechanize
I. 导入mechanize库,使用Browser()打开邮箱登陆页面。
&&& import mechanize
&&& br = mechanize.Browser()
&&& br.open(‘.cn/‘)
& response_seek_wrapper at 0xb6c1eb2cL whose wrapped object = & closeable_response at 0xb6c2164cL whose fp = & socket._fileobject object at \0xb6c18b2c&&&
II. 列出网页中的表单。
&& for form in br.forms():
print form
& POST /cgi-bin/sla.php?vt=3 application/x-www-form-urlencoded
& TextControl(local=)&
& SelectControl(domain=[*, , , ])&
& PasswordControl(pwd=)&
& CheckboxControl(remember=[*1])&
& SubmitControl(=登录) (readonly)&&
III. 填写表单信息。
&&& br.select_form(nr=0)
&&& br.form[‘local’] = ‘pythontesting’
&&& br.form[‘pwd’] = ‘test*#123’
IV. 提交表单并查看返回代码
&&& br.submit()
& response_seek_wrapper at 0xb6c1eb8cL whose wrapped object = &
closeable_response at 0x884ed8c whose fp = & socket._fileobject object at 0x881fb6c&&&
&&& print br.response().read()
  从结果上看,已经成功登陆上去了。
2.2 点击链接,跳转页面
  I. 首先列出邮箱页面中含有的链接.
&& for link in br.links():
print link.url + ‘:’+link.text
/basic/?sid=c566e95ea5b3bbe&vt=3:[IMG]
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=new:收信
/basic/writemail.php?sid=c566e95ea5b3bbe&vt=3:写信
/basic/findmail.php?sid=c566e95ea5b3bbe&vt=3:查找
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=new:收件夹(3)
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&type=1&fid=all:未读邮件(3)
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=cur:草稿夹
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=out:已发送
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=subs:订阅邮件
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=tmp:已删除
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=unk:垃圾邮件
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=74:网站通知
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=75:订单账单
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=76:社交网络
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=77:订阅资讯
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=73:商讯信息
/basic/listmail.php?sid=c566e95ea5b3bbe&vt=3&fid=all:所有邮件(3)
/basic/logout.php?sid=c566e95ea5b3bbe&vt=3:退出
/basic/about.php?sid=c566e95ea5b3bbe&vt=3:帮助
  II. 打开链接,跳转。
&&& new_link = br.click_link(text=’未读邮件(3)’)
&&& br.open(new_link)
& response_seek_wrapper at 0xb6c1e5ecL whose wrapped object = & closeable_response at 0x8853a8c whose fp = & socket._fileobject object at 0x881fdec&&&
版权声明:本文为博主原创文章,未经博主允许不得转载。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有

我要回帖

更多关于 python mechanize 的文章

 

随机推荐