Module: XP
- Defined in:
- lib/xp.rb,
lib/user_agents.rb
Constant Summary collapse
- USER_AGENTS =
{ ipad: 'Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3', iphone: 'Mozilla/5.0 (iPhone; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53', mac_firefox: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14', mac_safari: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14' }
Instance Method Summary collapse
- #css(selector) ⇒ Object
- #download(location: 'downloads', name: nil) ⇒ Object
- #page_source(user_agent_alias: :mac_firefox, user_agent: nil) ⇒ Object
- #to_nokogiri ⇒ Object
- #xpath(selector) ⇒ Object
Instance Method Details
#css(selector) ⇒ Object
27 28 29 |
# File 'lib/xp.rb', line 27 def css(selector) self.to_nokogiri.css(selector).to_html.to_nokogiri end |
#download(location: 'downloads', name: nil) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/xp.rb', line 18 def download(location: 'downloads', name: nil) FileUtils.mkdir_p location filename = (name || basename).to_s + extension File.open("#{location}/#{filename}", 'wb') do |f| f.write open(self).read end end |
#page_source(user_agent_alias: :mac_firefox, user_agent: nil) ⇒ Object
13 14 15 16 |
# File 'lib/xp.rb', line 13 def page_source(user_agent_alias: :mac_firefox, user_agent: nil) user_agent ||= USER_AGENTS[user_agent_alias] open(self, "User-Agent" => user_agent).read end |
#to_nokogiri ⇒ Object
7 8 9 10 11 |
# File 'lib/xp.rb', line 7 def to_nokogiri source = url? ? self.page_source : self Nokogiri(source) end |
#xpath(selector) ⇒ Object
31 32 33 |
# File 'lib/xp.rb', line 31 def xpath(selector) self.to_nokogiri.xpath(selector).to_html.to_nokogiri end |