mechanize.Browser 和 mechanize.UserAgentBase 实现了 Urllib2.OpenerDirctor 的接口 可以打开包括http在内的所有 url 链接 mechanize.UserAgentBase 提供简单的客户端代理的动态配置功能,如:协议,cookie, 重定向,机器人限制, 而不需要每次都创建一个新的 OpenerDirector 对象 简单的表单填写 方便的链接转换并且跳转 浏览器历史操作( .back() 和 .reload() 操作) 请求头中的 referer 会被合适地添加 (可选的操作) 自动遵守 机器人文件(robots.txt) 自动操作 http标题信息 (HTTP-Equiv) 看了以上的介绍,你大概清楚了 mechanize 的用途了吧。 其实这样的插件对于需要 javascript 操作,或者 js 相关的功能的网页是无能为力的。但是,我们可以查看js代码后,模拟相关的业务逻辑,然后再提交信息。 下面是mechanize的操作样例 import re import mechanize br = mechanize.Browser() response = br.open("http://www.example.com/") print response.read() # 打印网页的内容 # 访问符合指定的链接地址正则表达式的链接,且序号是第2个 response1 = br.follow_link(text_regex=r"cheese\s*shop", nr=1) assert br.viewing_html() print br.title() print response1.geturl() print response1.info() # headers print response1.read() # body # 浏览器选中 name 为 order 的表单 br.select_form(name="order") # 填充表单信息 br["cheeses"] = ["mozzarella", "caerphilly"] # (the method here is __setitem__) # 提交当前选定的表单。 浏览器在当前浏览对象调用了 .close() 的方法, 所以关闭了响应。 response2 = br.submit() # 打印当前的表单 (请使用 br.submit() ,而不是 response2.submit()) print br.form response3 = br.back() # back to cheese shop (same data as response1) # 历史记录机制返回缓存的response对象 # 我们仍然可以使用这个response,虽然他已经关闭了 response3.get_data() # 像在 read() 后使用的 .seek(0)方法 response4 = br.reload() # 从服务器端重新获取 for form in br.forms(): print form # .links 对象 接受 .follow() 和 .find_link() 对象的关键字参数 for link in br.links(url_regex="python.org"): print link br.follow_link(link) # 接受 link对象 或者 参数列表 br.back()复制代码 当然,在某些情况下,需要分析 html 的内容,并抓取某些数据,靠 mechanize 就不够了,这时候有没有办法呢?聪明的朋友一定已经想到了 BeautifulSoup ,或者 PyQuery 了,呵呵。不明白的朋友,可以点击链接去看看哦。 最后,奉上 mechanize的文档 ,希望对大家有帮助。http://wwwsearch.sourceforge.net/mechanize/

mechanize 是 pthon 的并且可编程的 浏览器插件,相关推荐

  1. google浏览器插件 开发 获取页面指定数据_程序员必备的4款Chrome插件,编程神器...

    一直有粉丝留言,想要大侠推荐几款程序员使用的插件,大侠特意去问了隔壁的程序员哥哥,终于被我问出了这4款编程神器!这4款插件不仅仅是提高效率那么简单哦,还可以让你的Chrome浏览器变得高端大气,一起来 ...

  2. python的socket编程接收浏览器上传的文件_使用python套接字编程将文件发送到浏览器...

    我正在尝试使用python(仅限于套接字编程)向客户机(浏览器:Chrome)发送一个文件(mp3).我的问题是文件被下载了,而不是在浏览器上进行流式传输.我不明白我哪里错了.请告诉我.在 另外,下载 ...

  3. 【Unity3D插件】UniRx(基于Unity的响应式编程框架)插件学习

    一.介绍UniRx插件 UniRx是一种基于Unity3D的响应式编程框架. UniRx就是Unity版本的Rx响应式扩展,响应式就是观察者和定时器,扩展指的是LINQ的操作符.Rx响应式扩展的特点就 ...

  4. 【Unity3D插件】UniRx(基于Unity的响应式编程框架)插件教程

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  5. AI扮演Linux虚拟机,能管理文件编程开浏览器,还能跟自己「套娃」聊天 | ChatGPT新玩法...

    詹士 发自 凹非寺 量子位 | 公众号 QbitAI ChatGPT能运行docker了? 还可以自己连接到OpenAI网站,查查自己? 被玩出花的OpenAI聊天AI ChatGPT,又被整出新活了 ...

  6. linux 下c插件开发,Linux C编程:打造一个插件系统

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 运行环境:linux 使用语言:c 或者c++ 插件,很多人用过,比如游戏插件,编辑器插件这些, 最著名的就数魔兽大脚插 ...

  7. php常用插件,关于PHP网站编程中常用插件的使用——w3cdream|前端学习-开发

    网站的建设涉及很多方面,一些功能的开发可能会消耗程序员很长的时间,虽然可以说增加我这个网站的数据量,但是同样也浪费了很长时间,那么如何快速的能节约时间又能够减少开发的周期呢,这就要使用插件了,我们都知 ...

  8. [javaSE] 网络编程(浏览器客户端-自定义服务端)

    获取ServerSocket对象,new出来构造参数:int类型端口号 调用ServerSocket对象的accept()方法,得到Socket对象 获取PrintWriter对象,new出来,构造参 ...

  9. 实体相交,切割空间的方法,建筑师编程指南-sketchup插件04

    在翻阅sketchup的开发文档的时候,发现非常多的命令都有示例代码片段,但是偏偏最重要的实体相交 intersect_with 竟然没有示例的代码片 段,而且这个方法参数比较多,理解起来不是很容易. ...

最新文章

  1. PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)
  2. Kafka消费者重置offset读取数据
  3. Swift 烧脑体操(五)- Monad
  4. python三十九:logging模块
  5. 园子-[闪存]chrome插件
  6. PMcaff-培训 | 活动报名结束,押金和邮件须知的那些事儿
  7. 《数据库系统实训》实验报告——单表查询
  8. 某8位微型计算机地址码为18位,2015广东海洋大学计算机组成原理试题
  9. pdf报表的制作入门,JasperReport
  10. 使用SoapUI生成wsdl文件客户端(二)
  11. html中单双引号镶嵌
  12. 常用验证码功能实现大全
  13. Linux_ppc下软件包安装,LINUX2000PPC安装手册
  14. 前端 | 数据可视化之ECharts
  15. STM32控制舵机讲解,从入门到放弃。
  16. windows图片和传真查看器的调出
  17. 万能的5款工具推进活动策划方案
  18. 手机淘宝APP关键词搜索采集方案
  19. JavaScript实现贷款利息计算器
  20. 机器学习模型的评价指标和方法(附代码)

热门文章

  1. 圣诞节装饰元素高清背景图素材
  2. oracle 视图、索引、序列、同义词
  3. jQuery DOM元素的遍历
  4. 生信步骤|转录组测序上游分析:hisat2+samtools+stringtie
  5. java语言获取数据库中的表的总行数
  6. CSDN学习(一) -- 什么是CSDN
  7. flashback的配置
  8. 联邦学习 | 无处不在的隐私泄露!
  9. ZooKeeper 命令操作
  10. 【剑指offer-54】20190907/03 字符流中第一个不重复的字符