Python mechanize 的一点说明
mechanize是非常合适的模拟浏览器的模块,它的特点主要有:
1 http,https协议等。
2 简单的HTML表单填写。
3 浏览器历史记录和重载。
4 Referer的HTTP头的正确添加(可选)。
5 自动遵守robots.txt的。
6 自动处理HTTP-EQUIV和刷新。
所以你可以用mechanize来完成一些自动化浏览器想要做的事情,比如自动登录表单,自动填写表单等。
首先你在mechanize download页面里面下载并且安装好
然后可以看下文档:http://wwwsearch.sourceforge.net/mechanize/
下面是我写的简单代码:
#导入模块##
import mechanize
import cookielib
from BeautifulSoup import BeautifulSoupbr = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)##关联cookies###设置一些参数,因为是模拟客户端请求,所以要支持客户端的一些常用功能,比如gzip,referer等
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)br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)###这个是degbug##你可以看到他中间的执行过程,对你调试代码有帮助
br.set_debug_http(True)
#br.set_debug_redirects(True)
#br.set_debug_responses(True)br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.11) Gecko/20100701 Firefox/3.5.11')]##模拟浏览器头
response = br.open('http://xxx..com/')##自己设定一个urlfor f in br.forms():##有的页面有很多表单,你可以通过来查看
print fbr.select_form(nr=1)##选择表单1,br.form['username'] = '用户账户'
br.form['password'] = '密码'br.submit()##提交表单print 'success login'
Python mechanize 的一点说明相关推荐
- python Json的一点收获,自定义序列化方法
From: http://blog.csdn.net/jlnuboy/article/details/5732196 PyMOTW: json 模块: json 目的: JavaScript对象格式序 ...
- python 元组的一点问题
元组的一点问题 tuple = ("helloworld", 12, "coding") print(tuple) print(tuple[0]) print( ...
- 孩子学python用的笔记本电脑_教孩子学Python 后的一点感受
先说一下孩子的情况.男孩儿,10岁,在学校上过scratch 的课:喜欢音乐和表演,是学校英文戏剧社成员:数学和语文成绩中等:贪玩儿,不会安排自己的事情.概括来说,就是一只普通孩子(和我小时候一样 L ...
- 听说三年前那些月入30K的程序员都是这样开始轻松构建算法交易机器:一点python基础+一点运气
全文共3071字,预计学习时长9分钟 图源:Unsplash 人工智能的新突破每天都成为头条新闻.在金融领域,因其具有深厚历史.清楚明了和结构化数据,机器学习广泛运用.最终,金融领域成为了" ...
- python mechanize自动登录程序
放假回来了,很久没更新博客了,以后得常更新,今天给大家分享下python第3方的模块包:mechanize. mechanize是非常合适的模拟浏览器的模块,它的特点主要有: 1 http,https ...
- python mechanize使用
遇到了一些坑,这个mechanize不支持js代码,如果遇到了 <button id="submit" type="button" οnclick=&qu ...
- 学会python之后-【一点资讯】学会Python后,人生简直开挂了!
你有没有因为"搜一下"烦恼过?虽然说现在搜索引擎很多,但百度早就失去"百度一下你就知道"万能时代了,经常网上一搜,全是没用的鸡肋信息,很多软件也没啥实际用处.前 ...
- 分享python os.system一点心得
我记得在上次的文章中写到了python popen,用python popen处理一些系统的命令它会返回一个对象, 比如: import os print os.popen('ping g.cn') ...
- 关于最近练习PYTHON代码的一点心得
做测试以来,一直想学习代码,以前也断断续续的学习过,不过都是练习一些基础语法,学习的是菜鸟教程,但是效果不大. 最近在练习CODEWAR里做练习题,慢慢强化自己对一些基本语法的理解,熟悉基本的内置函数 ...
最新文章
- html5 FileReader初识
- Java为什么会有默认的背景色_java – 为什么我的背景颜色不会在JFrame中...
- 英语应用文写作之感谢信
- 【转】 linux iio子系统
- android studio 控件提示大写
- 【科技金融】风控命门——第三届互联网金融风控大会会后复盘
- Python 3.4.4 学习笔记(004)python manuals/the python tutorial -- 3. An Informal Introduction to Python...
- linux高可用性,linux – 高可用性Cron Jobs
- linux自学(四)之开始centos学习,网络配置
- Java反射(Reflection)
- re.containerbase.startinternal 子容器启动失败_Python项目容器化实践(二) Docker Machine和Docker Swarm...
- android 6.0版本名字,棉花糖Marshmallow 是Android 6.0的名字
- Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图
- docker:轻量级图形页面管理工具Portainer
- vba传值调用_vba – 动态调用从形状OnAction属性传递参数的宏
- 圆弧裁剪算法c++_箍筋算法之争:按外皮长度计算与按中心线长度计算究竟相差多少?...
- 关于sql server 代理(已禁用代理xp)
- oppoa57升级android版本,OPPO A57刷机教程 OPPO A57升级更新系统包
- 无线AP Aruba-515初始化设置
- 铁汁!高并发这些东西都是虚拟的,你都理解透彻了嘛?(高并发目标/高并发构架演进/分布式/面向服务架构/高并发平台)