python 使用mechanize进行web网页交互
2015-07-16 20:55
901 查看
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(‘http://mail.sina.com.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 http://mail.sina.cn/cgi-bin/sla.php?vt=3 application/x-www-form-urlencoded
< TextControl(local=)>
< SelectControl(domain=[*sina.com, sina.cn, 2008.sina.com, vip.sina.com])>
< 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=4840c2ea0c566e95ea5b3bbe224125586&vt=3:
相关文章推荐
- python yaml使用
- Seven Python Tools All Data Scientists Should Know How to Use
- Python3 支持 MySQL
- 计算4000000000内的最大f(n)=n值---字符串的问题python实现(五岁以下儿童)
- 【Python 学习手册笔记】元组、文件及其他
- 使用Python扩展NotePad++
- python学习NO1
- Python学习日志2语法-20150716
- Python学习日志2语法-20150716
- selenium python grid
- 安装python-2.7.10.amd64, 再安装libxml2-python-2.7.7.win32-py2.7的注册表修改
- python中raw_input() 与 input()
- python库安装-pip镜像、whl包
- python之if __name__ == '__main__'
- Python学习-一个简单的计时器
- python 获取内存的状态
- Winpython Spyder template.py模板日期格式的修改
- Pony ORM
- 详解Python的Django框架中的模版继承
- 【Python】利用当前时间、随机数产生一个唯一的数字