当前位置: 首页 > 编程笔记 >

Ruby中的Mechanize的使用教程

董嘉祯
2023-03-14
本文向大家介绍Ruby中的Mechanize的使用教程,包括了Ruby中的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

小技巧

puts Mechanize::AGENT_ALIASES 可以打印出所有可用的user_agent
puts Mechanize.instance_methods(false) 输出Mechanize模块的所有方法
puts Mechanize.instance_methods()   输出Mechanize模块的所有方法以及所继承的类的函数

 类似资料:
  • 本文向大家介绍在Ruby on Rails中使用AJAX的教程,包括了在Ruby on Rails中使用AJAX的教程的使用技巧和注意事项,需要的朋友参考一下 如果没有听说过 Rails,那么欢迎您外星旅行归来,近几年大概只有那个地方没有听说过 Ruby on Rails 了。Rails 最吸引人的地方是能够很快地建立功能完备的应用程序并运行起来。Rails 为 Ajax 而内置集成的 Proto

  • 本文向大家介绍在Ruby中创建和使用哈希的教程,包括了在Ruby中创建和使用哈希的教程的使用技巧和注意事项,需要的朋友参考一下 哈希(Hash)是类似 "employee" => "salary" 这样的键值对的集合。哈希的索引是通过任何对象类型的任意键来完成的,而不是一个整数索引,其他与数组相似。 通过键或值遍历哈希的顺序看起来是随意的,且通常不是按照插入顺序。如果您尝试通过一个不存在的键访问哈

  • 本文向大家介绍使用Ruby来处理文本的教程,包括了使用Ruby来处理文本的教程的使用技巧和注意事项,需要的朋友参考一下 与 Perl 和 Python 类似,Ruby 拥有出色的功能,是一种强大的文本处理语言。本文简单介绍了 Ruby 的文本数据处理功能,以及如何使用 Ruby 语言有效处理不同格式的文本数据,无论是 CSV 数据还是 XML 数据。 Ruby 字符串 常用缩略词     CSV:

  • 本文向大家介绍使用Ruby来处理JSON的简单教程,包括了使用Ruby来处理JSON的简单教程的使用技巧和注意事项,需要的朋友参考一下 环境配置 在使用 Ruby 编码或解码 JSON 数据前,我们需要先安装 Ruby JSON 模块。在安装该模块前你需要先安装 Ruby gem,我们使用 Ruby gem 安装 JSON 模块。 但是,如果你使用的是最新版本的 Ruby,可能已经安装了 gem,

  • 本文向大家介绍利用RJB在Ruby on Rails中使用Java代码的教程,包括了利用RJB在Ruby on Rails中使用Java代码的教程的使用技巧和注意事项,需要的朋友参考一下 开始之前 关于本教程 Ruby on Rails (Rails) 是用 Ruby 编写的一个 full-stack Web 应用程序框架,而 Ruby 是一种功能丰富的、免费的、可扩展的、可移植的、面向对象的脚本

  • 当您希望与 Web 页面中找到的内容进行某种比较复杂的交互时,您需要使用 mechanize 库 示例代码: import re from mechanize import Browser br = Browser() br.open("http://www.example.com/") # follow second link with element text matching regular

  • 主要内容:谁适合阅读本教程?,阅读本教程前,您需要了解的知识:,编译/执行 Ruby 程序,实例Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。Ruby 可运行于多种平台,如 Windows、MAC OS 和 UNIX 的各种版本。 学习本教程,您将对 Ruby 有一个全面的了解。 现在开始学习 Ruby! 谁适合阅读

  • 问题内容: 我正在连接到一个网站,正在登录。 该网站将我重定向到新页面,并且Mechanize处理所有cookie和重定向作业,但是,我找不到最后一页。我使用Firebug并再次完成了相同的工作,然后发现我必须通过Mechanize传递另外两页。 我快速浏览了一下页面,发现有一些JavaScript和HTML代码,但由于它看起来不像普通的页面代码而无法理解。这些页面是做什么用的?他们如何重定向到其