Ruby:Mechanize的使用教程

小技巧



  • puts Mechanize::AGENT_ALIASES 可以打印出所有可用的user_agent

  • puts Mechanize.instance_methods(false) 输出Mechanize模块的所有方法

  • puts Mechanize.instance_methods()  
    输出Mechanize模块的所有方法以及所继承的类的函数

推荐阅读



官方文档

Many
Mechanize Examples

模拟Google搜索

使用mechanize分析并批量下载校内网相册照片

Mechanize使用手册中文版

Mechanize使用手册英文版

Mechanize模拟自然网页交互一些基本常用方法


Ruby中实现网页抓取,一般用的是mechanize,使用非常简单。

安装

sudo gem install mechanize

抓取网页

require ‘rubygems‘
require ‘mechanize‘
agent = Mechanize.new
page = agent.get(‘http://google.com/‘)

模拟点击事件

page = agent.page.link_with(:text => ‘News‘).click

模拟表单提交

google_form = page.form(‘f‘)
google_form["q"] = ‘ruby mechanize‘
page = agent.submit(google_form, google_form.buttons.first)
pp page

分析页面,mechanize用的是nokogiri解析网页的,所以可以参照nokogiri的文档

table = page.search(‘a‘)
text = table.inner_text
puts text

有几点注意的地方: 如果需要先登录的网页,那么可以在网站先登录,登录后记录JSESSIONID,然后赋值给agent

cookie = Mechanize::Cookie.new("JSESSIONID", "BA58528B76124698AD033EE6DF12B986:-1")
cookie.domain = "datamirror.csdb.cn"
cookie.path = "/"
agent.cookie_jar.add!(cookie)

如果需要保存网页,使用.save_as,(或许save也可以,我没试过)例如

agent.get("http://google.com").save_as


转载自:http://www.cnblogs.com/Stoned/archive/2012/02/23/2364389.html

时间: 2024-10-05 22:47:19

Ruby:Mechanize的使用教程的相关文章

Ruby 教程

Ruby 教程python-miniRuby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发.在 Ruby 社区,松本也被称为马茨(Matz).Ruby 可运行于多种平台,如 Windows.MAC OS 和 UNIX 的各种版本.学习本教程,您将对 Ruby 有一个全面的了解.现在开始学习 Ruby!谁适合阅读本教程?本教程有助于初学者理解 Ruby 语言基础知识及基本概念.阅读

第一个Ruby程序报错 uninitialized constant Hello

今天是我第一次接触Ruby语言,按照教程编写了一个很简单的Ruby程序,将文件命名为Hello.rb,内容如下: puts "Hello,Ruby!"; 但是执行时却报错: 百度后的解决方案如下:你还在irb里面,所以报这个错,你退出(exit)irb,然后执行ruby Hello.rb就可以了. 我尝试退出irb,但是程序自动进入irb#1,执行还是报错: 我打开cmd执行ruby C:\Ruby22\bin\Hello.rb命令后可以正常输出: 另外,在写puts语句的时候,后面的

ruby运行环境怎么在mac os x上安装

今天给大家讲讲ruby入门教程,主要针对新入门的ruby开发这,教大家如何在mac os x上安装ruby开发环境,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境. 此安装方法同样适用于产品环境! 系统需求 首先确定操作系统环境,不建议在 Windows 上面搞,所以你需要用: Mac OS X 任意 Linux 发行版本(Ubuntu,CentOS, Redhat, ArchLinux ...) 强烈新手使用 Ubuntu 省掉不必要的麻烦! 以下代码区域,带有 $ 打头的表示需

CocoaPods 安装与使用教程

如何下载和安装CocoaPods? 在安装CocoaPods前,需要在本地安装Ruby环境.安装教程原文:https://ruby-china.org/wiki/install_ruby_guide.(对于Ruby这个是什么东西,Mr 聂(本人)也不是很了解,你只要知到想要安装前就必须先安装Ruby就妥妥没问题了). 系统需求 首先确定操作系统环境,不建议在 Windows 上面搞,所以你需要用: Mac OS X 任意 Linux 发行版本(Ubuntu,CentOS, Redhat, Arc

redis requires ruby version 2.2.2的解决方案

redis requires ruby version 2.2.2的解决方案 今天在做Redis的Cluster集群的时候,在执行gem install redis时,提示如下错误: gem install redis ERROR: Error installing redis: redis requires Ruby version >= 2.2.2. CentOS7 yum库中ruby的版本支持到 2.0.0,可gem 安装redis需要最低是2.2.2,采用rvm来更新ruby: 1.安装

什么是gulp?

gulp初涉 1.什么是gulp? gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器:它不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用它,不仅可以很愉快的编写代码,而且大大提高我们的工作效率. gulp是基于Nodejs的自动任务运行器, 它能自动化地完成 前端代码的测试.检查.合并.压缩.格式化.浏览器自动刷新.部署文件生成,并监听文件在改动后重复指定的这些步骤. 2.什么是流? 流,流水,把文件比作河流,那么一条河流流出,另一

gulp初涉

1.什么是gulp? gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,不仅可以很愉快的编写代码,而且大大提高我们的工作效率. gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 前端代码的测试.检查.合并.压缩.格式化.浏览器自动刷新.部署文件生成,并监听文件在改动后重复指定的这些步骤.在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成

redhat RHEL 5.5 下载地址

redhat RHEL 5.5 下载地址 RHEL 5 update 5 已经release许久了, redhat RHEL 5.5 下载地址: RHEL 5 安装 序列号 rhel-server-5.5-i386-dvd.iso 01-Apr-2010 17:55 3111600128 rhel-server-5.5-x86_64-dvd.iso 01-Apr-2010 17:50 3703490560 rhel-server-supplementary-5.5-i386-disc1. RHE

Web开发必备资源汇总[转]

导读:原文来自< Best “must know” open sources to build the new Web>,译文由酷壳网陈皓整理编译< 开源中最好的Web开发的资源 >.文中收集的资料相当的齐全,供大家学习.参考. 学习HTML 5编程和设计 ★ HTML5 Rocks: Major Feature Groups的学习HTML5的资源(HTML5演示,教程). 源码 很不错的HTML5 Dashboard–Mozilla,效果很炫. WhatWG Developers