首页 > 编程 > Ruby > 正文

Ruby中Mechanize的使用深度解析

2020-02-24 15:40:28
字体:
来源:转载
供稿:网友

  下面是小编给大家分享的一篇ruby.html" target="_blank">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中Mechanize的使用深度解析了,想必都了解了吧,更多相关内容请继续关注武林技术频道。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选