ruby – 使用Capybara或类似功能访问所有已加载的资源
发布时间:2020-12-17 02:18:59 所属栏目:百科 来源:网络整理
导读:我正在寻找一种可能性,可以轻松访问并列出网页文档开始加载后加载的所有资源:脚本,图像,样式表等,使用无头浏览器.我对文件的网址,状态代码和类型等感兴趣. 想象一种以编程方式访问“网络”选项卡(开发人员工具)为您提供的信息的方法: 有没有人知道一个Ruby
我正在寻找一种可能性,可以轻松访问并列出网页文档开始加载后加载的所有资源:脚本,图像,样式表等,使用无头浏览器.我对文件的网址,状态代码和类型等感兴趣.
想象一种以编程方式访问“网络”选项卡(开发人员工具)为您提供的信息的方法: 有没有人知道一个Ruby库来帮助我这个或者 – 甚至更好 – 如果有办法用Capybara(-webkit)实现这个目的? 更新 似乎Poltergeist has a method called 解决方法
正如更新中所提到的,似乎有一种方法可以通过Poltergeist(一个Capybara驱动程序)来做到这一点.这是一个快速且非常“hackish”的实验:
require 'rubygems' require 'capybara' require 'capybara/poltergeist' driver = Capybara::Poltergeist::Driver.new({}) port = Capybara::Poltergeist::Util.find_available_port server = Capybara::Poltergeist::Server.new(port,30) client = Capybara::Poltergeist::Client.start(port,:path => driver.options[:phantomjs],:window_size => driver.options[:window_size],:phantomjs_options => driver.phantomjs_options ) browser = Capybara::Poltergeist::Browser.new(server,client,nil) browser.visit('http://www.google.com/') browser.network_traffic.each do |request| # sorry,quick and dirty to see what we get: request.response_parts.uniq(&:url).each do |response| puts "#{response.url}: #{response.status}" end end => http://www.google.com/: 200 http://ssl.gstatic.com/gb/images/b_8d5afc09.png: 200 http://www.google.com/images/srpr/logo1w.png: 200 http://www.google.com/images/srpr/nav_logo80.png: 200 http://www.google.com/xjs/_/js/hp/sb_he,pcc/rt=j/ver=FaiMBboaDLc.en_US./d=1/sv=1/rs=AItRSTMKxoHomLOW7ITf6OnfIEr5jQCEtA: 200 然而,这非常缓慢,当然远非任何可用的.我打算更深入地挖掘Poltergeist,以便在较低的层次上做同样的事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |