mechanize 是 pthon 的并且可编程的 浏览器插件,
来源:互联网 发布:java方法格式 编辑:程序博客网 时间:2024/06/06 08:05
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 的并且可编程的 浏览器插件,
- mechanize是非常合适的模拟浏览器的模块
- Mechanize版本的指定
- pthon 模块的搜索路径
- pthon中下划线的含义
- Python mechanize 的一点说明
- Mechanize对WEB的操作
- Mechanize对WEB的操作
- Mechanize模拟浏览器
- 可编程的配置方式
- 可编程控制的调光
- Python中mechanize库的简单使用说明
- Python使用mechanize模拟浏览器
- Python:mechanize模拟浏览器行为
- Python:mechanize模拟浏览器行为
- 火狐浏览器的插件
- 浏览器插件的生命周期!!
- 浏览器插件的编写
- 主引导记录MBR详解
- linux设备驱动归纳总结--.platform设备驱动
- asp.net中分页控件
- mj评-《福尔摩斯2》-8分
- 大量小文件的实时同步方案
- mechanize 是 pthon 的并且可编程的 浏览器插件,
- 一天学会MVC3之模型验证中的数据注解
- vs11 express javascript button执行一个点击操作
- 如何正确卸载Java
- Eclipse is running in a JRE, but a JDK is required Some Maven plugins may not work when……
- asp过滤SQL注入
- 图说“什么是数据挖掘”
- Android_JNI浅析(2)
- 重载:子类方法访问属性不能比父类方法高