当前位置: 首页 > 知识库问答 >
问题:

机械化返回connect_nonblock:SSL_connect返回=1 errno=0 state=SSLv3

仇龙光
2023-03-14

我想刮一个Crunchbase页面,但我得到了这个错误:

ryzal~/Desktop/Sites/scraper$ ruby scraper.rb
/Users/Ryzal/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http.rb:933:in `connect_nonblock': SSL_connect returned=1 errno=0 state=SSLv3 read server hello A: sslv3 alert handshake failure (OpenSSL::SSL::SSLError)
    from /Users/Ryzal/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http.rb:933:in `connect'
    from /Users/Ryzal/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
    from /Users/Ryzal/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http.rb:858:in `start'
    from /Users/Ryzal/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/net-http-persistent-2.9.4/lib/net/http/persistent.rb:700:in `start'
    from /Users/Ryzal/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/net-http-persistent-2.9.4/lib/net/http/persistent.rb:631:in `connection_for'
    from /Users/Ryzal/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/net-http-persistent-2.9.4/lib/net/http/persistent.rb:994:in `request'
    from /Users/Ryzal/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mechanize-2.7.5/lib/mechanize/http/agent.rb:274:in `fetch'
    from /Users/Ryzal/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mechanize-2.7.5/lib/mechanize.rb:464:in `get'
    from scraper.rb:10:in `<main>'

以下是代码:

require 'nokogiri'
require 'mechanize'
require 'json'


agent = Mechanize.new do |a|
  a.ssl_version = :TLSv1
end

page = agent.get "https://www.crunchbase.com/app/search/people/0b543c0d8ea4c95cdf78a48583d501da2a76b26c"

member_links = page.links_with(href: %r{.*/person/\w+})

member_links.map do |link|  
    puts member_counter

    member = link.click

    # Get name
    name = member.search('#profile_header_heading').text.strip
    puts "#{name}"
end 

这两种解决方案我都尝试过:

Ruby Mechanize https错误Mechanize获取“Errno::econreset:连接被peer - SSL_connect重置”

但是同样的错误仍然存在。

请帮忙,谢谢!

共有1个答案

白星腾
2023-03-14

尝试跟随

agent = Mechanize.new
agent.agent.http.verify_mode = OpenSSL::SSL::VERIFY_NONE
 类似资料:
  • 问题内容: 例如我有一个功能: 我怎样才能返回AJAX后得到的? 问题答案: 因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。 最好的选择是将自己的回调传递给f1 然后,您将像这样致电:

  • 问题内容: 我在使用Ajax时遇到问题。 问题是,在获得ajax响应之前,它会返回cnt。因此它总是返回NULL。 有没有办法使正确的返回响应值? 谢谢! 问题答案: 由于AJAX请求是异步的,因此您的cnt变量将在请求返回并调用成功处理程序之前返回。 我建议重构您的代码以解决此问题。 一种方法是从AJAX请求的成功处理程序中调用调用了GetGrantAmazonItemCnt()的任何函数,此方

  • 我想在下面返回JSON。 {“名字”:“杰基”} 新来的春靴在这里。1天大。有没有合适的方法可以做到这一点?

  • 问题内容: 我创建了一个自定义错误类型来包装错误,以便更轻松地在Golang中进行调试。当有打印错误时它可以工作,但是现在引起了恐慌。 演示版 当我调用一个函数时,它不会返回错误,我仍然应该能够包装该错误。 预期的行为是,如果错误为nil,则应该简单地忽略它,不幸的是,它会做相反的事情。 我希望它能打印出来。而是即使错误为nil也会打印。 问题答案: 正在将err变量与nil进行比较,但实际上它是

  • 问题内容: 我需要创建一个 Java 方法以返回或随机返回。我怎样才能做到这一点? 问题答案: 该类已经具有此功能: 但是,每次需要随机布尔值时始终创建一个新实例并不高效。相反,请在您的类中创建需要随机布尔值的type属性,然后为每个新的随机布尔值使用该实例:

  • 问题内容: 我想知道是否有类似Java的Perl / Python机械化的东西。 谢谢! 问题答案: 看看HtmlUnit。它类似于Perl的WWW :: Mechanize 。还有一个Perl版本,名为WWW :: HtmlUnit (它使用Inline :: Java 将Java库的方法公开给Perl)。