Web scraping 吹气比利和多水豚会话

Web scraping 吹气比利和多水豚会话,web-scraping,rspec,capybara,Web Scraping,Rspec,Capybara,我试图使用RSpec测试一个使用水豚从网站读取数据的库 我想用PuffingBilly来记录这个库中的交互,但我根本无法让PuffingBilly做出响应,因为我认为它关注的是RSpec正在使用的水豚实例 如何让PuffingBilly阻止来自另一个Capybara::会话的请求 回溯 6:from/home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/puffing-billy-2.1.1/lib/billy/proxy.rb:19:in block i

我试图使用RSpec测试一个使用水豚从网站读取数据的库

我想用PuffingBilly来记录这个库中的交互,但我根本无法让PuffingBilly做出响应,因为我认为它关注的是RSpec正在使用的水豚实例

如何让PuffingBilly阻止来自另一个Capybara::会话的请求

回溯

6:from/home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/puffing-billy-2.1.1/lib/billy/proxy.rb:19:in block in start' 5:from/home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/puffing-billy-2.1.1/lib/billy/proxy.rb:70:inmain_loop'4:from/home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in run' 3:from/home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:inrun\u machine'2:from/home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/puffing-billy-2.1.1/lib/billy/proxy.rb:76:in主循环中的块中 1:from/home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:531:instart\u server'/home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:531:“启动\u tcp\u服务器”中:无接受程序(端口正在使用或需要根权限)(运行时错误)

配置(spec/spec\u helper.rb)


为了让puffing billy与库中的Capybara会话交互,您需要使用puffing billy代理选项配置用于该会话的驱动程序


我不应该投票否决这一点。如果您编辑它,我将纠正它。我相信我正在通过Puffing Billy找到正确的端口,但我现在收到了这个错误:“没有接受程序(端口正在使用或需要根权限)”,我只能找到很少关于这个错误的信息。@JesseFarmer如果您添加用于配置会话的代码,以及完整的错误(使用stacktrace)对于您的问题,我可能能够提供更多的帮助-如果没有这些信息,很难确切知道发生了什么。@JesseFarmer请将信息添加到原始问题,而不是答案中(我已复制并粘贴了您提供给问题的信息)。重要的配置是应用程序中水豚会话的配置-而不是直接的PuffingBilly配置-即,您需要将代理信息从PuffingBilly添加到水豚会话,而不是相反(我认为您已经这样做了)。请将显示如何在库中配置水豚会话的代码添加到原始问题。
Billy.configure do |c|
  c.cache = true
  c.cache_request_headers = false
  c.ignore_params = []
  c.path_blacklist = []
  c.merge_cached_responses_whitelist = []
  c.persist_cache = true
  c.ignore_cache_port = true # defaults to true
  c.non_successful_cache_disabled = false
  c.non_successful_error_level = :warn
  c.non_whitelisted_requests_disabled = false
  c.cache_path = 'spec/fixtures/billy/req_cache/'
  c.certs_path = 'spec/fixtures/billy/req_certs/'
  c.proxy_host = 'localhost'
  c.proxy_port = 4461
  # c.proxied_request_host = 'localhost'
  # c.proxied_request_port = 4461
  c.record_requests = true
  c.cache_request_body_methods = ['post', 'patch', 'put', 'get']
end