2017-01-10 25 views
0

Я пытаюсь скрести страницу CrunchBase, но я получил эту ошибку:Mechanize возвращает `connect_nonblock ': SSL_connect вернулся = 1 ERRNO = 0 состояние = SSLv3

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 error Mechanize getting "Errno::ECONNRESET: Connection reset by peer - SSL_connect"

Но все та же ошибка сохраняется.

Пожалуйста, помогите, спасибо!

ответ

0

Попробуйте После

agent = Mechanize.new 
agent.agent.http.verify_mode = OpenSSL::SSL::VERIFY_NONE 
+0

Я получил '.../драгоценные камни/механизировать-2.7.5/Библиотека/механизировать/HTTP/agent.rb: 323: в' выборки ': 416 => Net :: HTTPRequestedRangeNotSatisfiable for ... ' –

+0

@RizalYusoff' Crunchbase' является блоком ip после 5 запросов. поэтому он дает код ошибки '416'. Для решения вы можете попробовать установить set proxy ip в mechanize. –

Смежные вопросы

 Смежные вопросы