mechanize是非常合适的模拟浏览器的模块。

它的特点主要有:

1 http,https协议等。
2 简单的HTML表单填写。
3 浏览器历史记录和重载。
4 Referer的HTTP头的正确添加(可选)。
5 自动遵守robots.txt的。
6 自动处理HTTP-EQUIV和刷新。

所以你可以用mechanize来完成一些自动化浏览器想要做的事情,比如自动登录表单,自动填写表单等。
首先你在 mechanize download页面 里面下载并且安装好
然后可以看下文档: http://wwwsearch.sourceforge.net/mechanize/

下面是我写的简单代码:

[python] view plaincopy
  1. #导入模块##
  2. import mechanize
  3. import cookielib
  4. from BeautifulSoup import BeautifulSoup
  5. br = mechanize.Browser()
  6. cj = cookielib.LWPCookieJar()
  7. br.set_cookiejar(cj)##关联cookies
  8. ###设置一些参数,因为是模拟客户端请求,所以要支持客户端的一些常用功能,比如gzip,referer等
  9. br.set_handle_equiv(True)
  10. br.set_handle_gzip(True)
  11. br.set_handle_redirect(True)
  12. br.set_handle_referer(True)
  13. br.set_handle_robots(False)
  14. br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
  15. ###这个是degbug##你可以看到他中间的执行过程,对你调试代码有帮助
  16. br.set_debug_http(True)
  17. #br.set_debug_redirects(True)
  18. #br.set_debug_responses(True)
  19. 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')]##模拟浏览器头
  20. response = br.open('http://xxx..com/')##自己设定一个url
  21. for f in br.forms():##有的页面有很多表单,你可以通过来查看
  22. print f
  23. br.select_form(nr=1)##选择表单1,
  24. br.form['username'] = '用户账户'
  25. br.form['password'] = '密码'
  26. br.submit()##提交表单
  27. print 'success login'

python模块学习---mechanize(模拟浏览器)相关推荐

  1. python模拟浏览器模块,python模块学习---mechanize(模拟浏览器)

    mechanize是非常合适的模拟浏览器的模块. 它的特点主要有: 1 http,https协议等. 2 简单的HTML表单填写. 3 浏览器历史记录和重载. 4 Referer的HTTP头的正确添加 ...

  2. Mechanize模拟浏览器

    简介: Mechanize 是一个 Python 模块,用于模拟浏览器.由于考虑到爬虫所需要的是数据,所以该模块完全可以绕过验证码,直接使用 Cookie 登录就可以了.但是 Mechanize 模块 ...

  3. Python使用mechanize模拟浏览器

    Python使用mechanize模拟浏览器 之前我使用自带的urllib2模拟浏览器去进行访问网页等操作,很多网站都会出错误,还会返回乱码,之后使用了 mechanize模拟浏览器,这些情况都没出现 ...

  4. pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法

    在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...

  5. python 模拟浏览器selenium_浅谈python爬虫使用Selenium模拟浏览器行为

    前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...

  6. python模块学习笔记

    python模块学习笔记 1.Python自动发送邮件smtplib 2.制作二维码图片MyQR 3.绝对值模块math 4.CSV模块 5.openpyxl 模块,操作Excel文件 ExcelMa ...

  7. python textwrap_python2.7.3编译python模块学习- textwrap 文本包装和填充

    python模块学习- textwrap 文本包装和填充 代码实例: sample_text = ''' The textwrap module can beused to format text f ...

  8. Python模块学习 - 用tinify模块压缩和优化图片

    Python模块学习 - 用tinify模块压缩和优化图片 tinify模块 功能描述:TinyPNG和TinyJPG网站提供了压缩和优化.png和.jpg格式图片的功能.虽然可以很轻松地使用网页版进 ...

  9. Python模块学习 ---- zlib 数据压缩

    Python模块学习 ---- zlib 数据压缩 目录(?)[+] Python标准模块中,有多个模块用于数据的压缩与解压缩,如zipfile,gzip, bz2等等.上次介绍了zipfile模块, ...

最新文章

  1. Velocity的layout功能
  2. boost::multi_array模块index_base 修改工具的测试
  3. linux-实时查看mysql中的日志文件
  4. `object.__init__`
  5. java之split用法注意
  6. win7局域网计算机 慢,win7系统局域网传输速度很慢的方法介绍
  7. 邮件实现详解(一)------邮件发送的基本过程与概念
  8. Eclipse和IDEA哪个好
  9. in comment after two dashes (--) next character must be > not (position: START_TAG seen ...
  10. 什么是EDM营销?EDM营销和一般营销方式的区别分析
  11. 网络安全架构:如何理解P2DR模型
  12. Java P2298 Mzc和男家丁的游戏
  13. 尝试Ping百度域名后的思考
  14. 生成HTTPS协议需要的SSL证书
  15. [ XJTUSE ]JAVA语言进阶知识—— 8.6 多线程
  16. 如果同步块内的线程抛出异常会发生什么?
  17. 真c++ 从二叉树到红黑树(6)之红黑树RedBlack
  18. 基于JavaSwing的雷电游戏(附论文)
  19. 立秋后6大脏器排毒法 干净才是真正文艺范儿(转)
  20. 成熟敏捷组织中管理者的角色是咋样的?

热门文章

  1. 年收入百万美元AI科学家的烦恼与思考
  2. 成为人工智能视觉应用工程师需要多久?我用了45天!
  3. 真香!3个月0基础转型大厂数据分析师,他做对了什么?
  4. 时间可以是二维的?基于二维时间图的视频内容片段检测 | AAAI 2020
  5. 手把手教你实现PySpark机器学习项目——回归算法
  6. 边界框的回归策略搞不懂?算法太多分不清?看这篇就够了
  7. 清华大学提出APDrawingGAN,人脸照片秒变艺术肖像画
  8. 倒计时2天,如何搭乘通往AI全明星技术盛宴的末班车?(附大会完整版全日程)...
  9. Spring Validation最佳实践及其实现原理,参数校验没那么简单!
  10. 一张900w的数据表,怎么把原先要花费17s执行的SQL优化到300ms?