ruby 使用Capybara w / Poltergeist(PhantomJS)从位于给定URL的HTML页面的主体中抓取文本内容。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 使用Capybara w / Poltergeist(PhantomJS)从位于给定URL的HTML页面的主体中抓取文本内容。相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env ruby
require 'capybara'
require 'capybara/poltergeist'

class Scraper
  include Capybara::DSL
  Capybara.register_driver :poltergeist do |app|
    Capybara::Poltergeist::Driver.new app,
      phantomjs_options: ['--load-images=no','--ignore-ssl-errors=yes'],
      js_errors: false,
      inspector: false,
      debug: false
  end
 
  attr_accessor :document, :response_headers, :title, :metas, :text

  def initialize(url)
    @session = Capybara::Session.new(:poltergeist)
    @session.driver.headers = { 'User-Agent' => "Mozilla/5.0 (Macintosh; Intel Mac OS X)" }
    get url
  end

  def get(url)
    @session.visit url
    @document = @session.document
    @response_headers = @session.response_headers

    @title = @session.title
    @metas = @session.find_all('meta', visible: false).collect(&:native).collect(&:attributes)
    @text  = @document.text 'body'

    @session.driver.quit
    self
  end

end

s = Scraper.new "http://www.humani.se"

以上是关于ruby 使用Capybara w / Poltergeist(PhantomJS)从位于给定URL的HTML页面的主体中抓取文本内容。的主要内容,如果未能解决你的问题,请参考以下文章

ruby Capybara JS使用angular.js和/或turbolinks怪癖

ruby capybara.rb(无头铬)

ruby Capybara + Poltergeistの雏形

ruby capybara_screenshots.rb

ruby capybara.rb

ruby Capybara自动保存测试失败的屏幕截图