401=>Net: HTTPUnauthorized for https 굽기 인증 거부 시

3229 단어 RubyRails
화면에서 보지 못했던 오류가 발생해 찾아보니 일본어 기사가 많지 않아 일단 적어놨다.

잘못


concole
$ ruby scraping.rb

잘못된 문장
response_authenticate': 401 => Net::HTTPUnauthorized for https: URL名 -- no credentials found, provide some with #add_auth -- available realms: Application (Mechanize::UnauthorizedError)

까닭


인증 오류 같은데...
Basic 인증을 사용한 경우 사용자 이름과 암호의 조합을 연결합니다.
기본 64로 암호화해서 서버에 보내는 것 같습니다.
인증이 필요한 페이지에 접근하려고 할 때, 서버 옆에 'Authorization' 이라는 페이지의 앞머리가 있습니다
브라우저에서 요청이 첨부되었는지 확인합니다.
처음 방문했을 때 "Authorization"페이지의 눈썹이 없기 때문에 브라우저에 대한 인증이 필요합니다
따라서 상술한 문제가 발생하면 Authorization 페이지의 눈썹을 스스로 처리할 수 있습니다!
어쨌든 방문을 위해서는 인증용 비밀번호가 필요합니다!그렇다고 합니다.
(오류가 있으면 표시)

해결하다

require 'mechanize'

username = 'ユーザー名'
password = 'パスワード' #この辺は管理者に聞くしかないかと思われます、、

agent = Mechanize.new do |agent|
  agent.pre_connect_hooks << lambda { |agent, request| request["Authorization"] = "Basic #{Base64.strict_encode64(username + ':' + password)}" }
end

page = agent.get("URL")
  elements = page.search('a div') # a要素の下のdiv要素を検索
    elements.each do |ele|
    puts ele.inner_text # inner_textメソッドでテキストを取得
end

나는 이렇게 하면 다시 쓸 수 있을 것이라고 생각한다.

참고 자료

좋은 웹페이지 즐겨찾기