Tag: mechanize

得到错误“getaddrinfo:没有这样的主机是已知的。 (Socke tError)“机械化gem

我尝试了下面的代码: require ‘mechanize’ agent = Mechanize.new{|a| a.ssl_version, a.verify_mode = ‘SSLv3′, OpenSSL::SSL::VERIFY_NONE} page = agent.get “https://gegsltraining.aravo.com/” page=page.link_with(:dom_class => “button”).click() 但是我的错误得到了以下错误。 D:\WIPData\Ruby\Scripts>mechanize_dowload.rb C:/Ruby193/lib/ruby/gems/1.9.1/gems/net-http-persistent-2.8/lib/net/http/persist ent/ssl_reuse.rb:29:in `initialize’: getaddrinfo: No such host is known. (Socke tError) from C:/Ruby193/lib/ruby/gems/1.9.1/gems/net-http-persistent-2.8/lib/net /http/persistent/ssl_reuse.rb:29:in `open’ from C:/Ruby193/lib/ruby/gems/1.9.1/gems/net-http-persistent-2.8/lib/net /http/persistent/ssl_reuse.rb:29:in `block in connect’ from C:/Ruby193/lib/ruby/1.9.1/timeout.rb:54:in `timeout’ from C:/Ruby193/lib/ruby/1.9.1/timeout.rb:99:in `timeout’ from C:/Ruby193/lib/ruby/gems/1.9.1/gems/net-http-persistent-2.8/lib/net /http/persistent/ssl_reuse.rb:29:in `connect’ from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:755:in `do_start’ from […]

ruby:irb给NameError尝试使用mechanize gem(ubuntu)

在我的ubuntu框中,当我尝试使用mechanize gem时,irb(ruby)给出一个NameError: $ irb irb(main):001:0> require ‘mechanize’ => true irb(main):002:0> Mechanize.new NameError: uninitialized constant Mechanize from (irb):2 from :0 gem env显示了这个: RubyGems Environment: – RUBYGEMS VERSION: 1.3.7 – RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux] – INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8 – RUBY EXECUTABLE: /usr/bin/ruby1.8 – EXECUTABLE DIRECTORY: /usr/bin – RUBYGEMS PLATFORMS: – ruby – x86_64-linux – […]

Mechanize的SSL错误

我在irb上得到了这些命令 require ‘mechanize’ agent = Mechanize.new agent.get(‘https://monabo.lemonde.fr/customer/account/forgotpassword/’) 我收到了这个错误: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=unknown state: sslv3 alert handshake failure 我试过Mac,它的工作原理我没有这个错误。 但是,它在我的计算机上不起作用(运行Linux Mint 17)。 我尝试了什么: 导出此变量: export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt 设置此变量: agent.agent.http.ca_file = ‘/etc/ssl/certs/ca-certificates.crt’ 设置这个: OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE 更改ruby版本(我目前正在使用ruby 2.1.5p275) 这些解决方案都没有改变这个问题。 我怀疑服务器需要一个特定的OpenSSL版本。 请注意,我可以通过mechanize请求https://google.com并确保其有效,但不是https://monabo.lemonde.fr/customer/account/forgotpassword/ 。 它在mac上工作的事实可能会假设我的配置错误。 编辑:这是此命令的输出: ➜ swiff git:(master) ✗ openssl s_client -connect monabo.lemonde.fr/customer/account/forgotpassword:443 -tls1 -servername monabo.lemonde.fr/customer/account/forgotpassword | openssl […]

如何在使用Ruby mechanize加载页面之前设置Referer标头?

有没有一种直接的方法来使用Mechanize 2.3设置自定义标头? 我试过以前的解决方案,但得到: $agent = Mechanize.new $agent.pre_connect_hooks << lambda { |p| p[:request]['Referer'] = 'https://wwws.mysite.com/cgi-bin/apps/Main' } # ./mech.rb:30:in `’: undefined method `pre_connect_hooks’ for nil:NilClass (NoMethodError)

在两个单独的页面上刮取需要登录用户名和密码的站点

我正试图从我公司的Intranet中获取信息,这样我就可以通过仪表板在我们的办公室墙板上显示信息。 我正在尝试使用以下提供的信息: 本网站 。除了作为菜鸟之外,我遇到的问题是,为了获取我想要抓取的信息,我需要登录我们的Intranet提供我的用户名在一个页面上,然后提交给另一个,以便我可以提供我的密码。 一旦我登录,我就可以链接并抓取我的数据。 以下是我的登录用户名页面中的一些源代码:  Username: 2) { submit(); } else { alert(‘Enter your Username.’); }”> 以下是我的登录密码页面的一些来源:  Password: 2) { submit(); } else { alert(‘Enter your Password.’); }”> 使用所述资源的示例这是我认为应该工作但似乎不是: require ‘mechanize’ @agent = Mechanize.new @agent.verify_mode = OpenSSL::SSL::VERIFY_NONE ##Login Page: page = @agent.get ‘http://www.website_here.com/intranet/login.asp’ ##Username Page: form = page.forms[0] form[‘USER NAME HERE’] = LoginUser ##Submit […]

我无法从Nokogiri解析的字符串中删除空格

我无法从字符串中删除空格。 我的HTML是: Cena pro Vás: 139 Kč 我的代码是: #encoding: utf-8 require ‘rubygems’ require ‘mechanize’ agent = Mechanize.new site = agent.get(“http://www.astratex.cz/podlozky-pod-raminka/doplnky”) price = site.search(“//p[@class=’your-price’]/strong/text()”) val = price.first.text => “139 ” val.strip => “139 ” val.gsub(” “, “”) => “139 ” gsub , strip等不起作用。 为什么,我该如何解决这个问题? val.class => String val.dump => “\”139\\u{a0}\”” ! val.encoding => # __ENCODING__ => # […]

使用Mechanize获取JavaScript变量

我想从head > script > var token https://admin.booking.com/hotel/hoteladmin获取一个JavaScript变量。 我不知道浏览器如何设置此变量,因为当我从Mechanize获取此页面时,我得到: var token = ” || ’empty-token’, 这是我用来获取此页面的代码: login_url = “https://admin.booking.com/hotel/hoteladmin” agent = Mechanize.new agent.verify_mode= OpenSSL::SSL::VERIFY_NONE page = agent.get(login_url)

Ruby Mechanize https错误

我正在尝试执行以下操作: page = Mechanize.new.get “https://sis-app.sph.harvard.edu:9030/prod/bwckschd.p_disp_dyn_sched” 但我只得到这个例外: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert illegal parameter from /Users/amosng/.rvm/gems/ruby-1.9.3-p194/gems/net-http-persistent-2.7/lib/net/http/persistent/ssl_reuse.rb:70:in `connect’ from /Users/amosng/.rvm/gems/ruby-1.9.3-p194/gems/net-http-persistent-2.7/lib/net/http/persistent/ssl_reuse.rb:70:in `block in connect’ from /Users/amosng/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/timeout.rb:54:in `timeout’ from /Users/amosng/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/timeout.rb:99:in `timeout’ from /Users/amosng/.rvm/gems/ruby-1.9.3-p194/gems/net-http-persistent-2.7/lib/net/http/persistent/ssl_reuse.rb:70:in `connect’ from /Users/amosng/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:755:in `do_start’ from /Users/amosng/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:750:in `start’ from /Users/amosng/.rvm/gems/ruby-1.9.3-p194/gems/net-http-persistent-2.7/lib/net/http/persistent.rb:511:in `connection_for’ from /Users/amosng/.rvm/gems/ruby-1.9.3-p194/gems/net-http-persistent-2.7/lib/net/http/persistent.rb:806:in `request’ from /Users/amosng/.rvm/gems/ruby-1.9.3-p194/gems/mechanize-2.5.1/lib/mechanize/http/agent.rb:258:in `fetch’ from /Users/amosng/.rvm/gems/ruby-1.9.3-p194/gems/mechanize-2.5.1/lib/mechanize.rb:407:in `get’ from […]