프록시 세션마다 Ruby Mechanize 에이전트를 유지하세요
Ruby Mechanize 에이전트의 프록시를 한 번 설정하고, 관련 요청에 재사용하며, 쿠키 상태와 지속 연결의 범위를 의도적으로 정하세요.
작업이 HTTP 응답을 확인하고 일반 링크를 따라가는 것이라면 항상 전체 브라우저가 필요한 것은 아닙니다. Ruby Mechanize는 해당 요청을 수행하는 에이전트에 프록시를 노출합니다:
agent = Mechanize.new('office-route')
begin
agent.set_proxy('proxy.example', 8080)
page = agent.get('https://www.example.com/')
puts page.code
ensure
agent.shutdown
end이는 mechanize 라이브러리가 로드되었다고 가정합니다. 프록시 인증 없이 허용된 공개 페이지를 확인할 때 HTTP 프록시 목록이 예제에 맞는 호스트/포트 값을 제공합니다. proxy 메서드는 엔드포인트가 요구할 때 사용자 이름과 비밀번호를 선택적 세 번째·네 번째 인수로 받습니다.
같은 브라우징 세션에 속한 요청에는 구성된 에이전트를 재사용하세요. 쿠키와 기록, 네트워크 설정을 함께 지닙니다. 출구 프록시를 바꾼다고 해서 새 정체성이 생기거나 로그인 쿠키가 버려지지는 않습니다.
여러 프록시 세션에는 작업이 진행되는 동안 공유 에이전트 하나를 바꾸는 대신 각각 고유한 에이전트를 주세요. 라이브러리는 분리된 SSL 연결이 필요할 때 고유한 연결 이름도 문서화합니다. 예제의 생성자 이름이 그 선택을 명시합니다.
관련 URL 검사를 프록시별로 묶으면 불필요한 재구성을 줄일 수 있습니다. 결과를 그것을 만든 경로와 URL에 연결해 두고, 리디렉션과 오류 응답도 포함하세요.
Mechanize는 브라우저의 JavaScript 실행을 재현하지 않습니다. 테스트 중인 동작이 스크립트, 렌더링 또는 브라우저별 인증에 의존한다면 실제 브라우저를 사용하세요. 프록시를 통한 성공적인 HTTP 가져오기는 이 에이전트가 그 요청을 할 수 있었다는 더 좁은 질문에 답합니다.