urlib 라이브러리

  URLLIB 파이썬 라이브러리는 브라우저의 동작은 지정된 서버에 요청을 전송 시뮬레이션 할 수 있으며, 서버에 의해 반환 된 데이터를 저장할 수 있습니다, 가장 기본적인 네트워크 요청 라이브러리입니다.

urlopen () :

  urllib.request 모듈 메서드 HTTP 요청에 대한 기본적인 구성을 제공한다. 이 프로세스를 시작하는 브라우저 요청의 사용을 시뮬레이션 할 수 있지만, 그것은 또한 인증 확인 (인증), 리디렉션 (재) 브라우저의 쿠키 및 기타 콘텐츠를 처리.

여기에 예를 들어 파이썬 공식 웹 사이트에서, 우리는이 페이지를 파악 내려와

에서 URLLIB 반입 요청 

응답 = request.urlopen ( ' https://www.python.org ' )
 인쇄 (response.read ())

결과는 다음과 같다 있습니다

 

  여기에 우리가 코드의 두 라인을 가지고, 우리는 크롤링 파이썬의 공식 웹 사이트, 페이지의 소스 코드의 출력을 완료합니다. 소스 코드를 받고 후? 우리는 그림의 주소를 연결하려면, 당신은 텍스트 정보가 밖으로 아직없는 추출 할 수 있습니다?

  다음으로, 최종 예에 반환 무엇을 봐. 유형 () 형식의 출력 응답 방법을 이용하여 :

에서 URLLIB 반입 요청 

응답 = request.urlopen ( ' https://www.python.org ' )
 인쇄 (유형 (대응))

 

  다음과 같이 출력 결과는 다음과 같습니다

< 클래스  ' http.client.HTTPResponse ' >

  찾을 수 있습니다, 그것은 주로 읽기 ()를 포함, readinto (), 대해 getHeader (이름), 대해 getHeaders (), fileno () 등, 그리고 MSG, 버전, 상태, 이유, debuglevel 객체 HttpResponse에 타입, 속성을 colsed .

이 객체를 얻은 후에, 우리는 당신은 반환 된 정보의 일련의 결과를 얻기 위해 이러한 메서드와 속성을 호출 할 수 있습니다 응답 변수로 할당합니다.

  예를 들어, () 방법은 페이지의 콘텐츠가 얻어 질 수 리턴 (200)은 요청이 성공적으로 나타낸다 같은 통화 상태 특성, 결과 상태 코드를 리턴 할 수 판독 호출 페이지 (404)가 등을 나타냄을 발견되지 않는다.

 

  urlopen 기본 () 메소드를 사용하여 웹 페이지를 가져올 수있는 간단한 기본 GET 요청을 완료 할 수 있습니다.

 

  당신은 몇 가지 매개 변수를 전달하는 연결하려면, 어떻게 그것을 달성하기 위해? urlopen () API 함수에서 첫번째보기 :

  urllib.request.urlopen URL (데이터 없음 = [타임 아웃] * cafile에서 = 없음, capath에 = 없음, cadefault = 거짓, 문맥 = 없음)

  첫 번째 매개 변수에 추가하여, 찾을 수는 데이터 (추가 데이터), 제한 시간 (타임 아웃) 등으로, 우리는 또한 다른 콘텐츠를 전달할 수 있습니다, URL을 전달할 수 있습니다.

  이러한 매개 변수의 우리의 세부 아래 사용.

  • 데이터 매개 변수

  데이터 매개 변수는 선택 사항입니다. 당신은, 즉 바이트 바이트 스트림 콘텐츠 인코딩 형식으로 유형을 인수의 매개 변수에 필요한 바이트 () 메소드를 추가합니다. 이 매개 변수를 전달하는 경우 또한, 그것은 더 이상가 GET을 요청하는 방법이 있지만, POST 방법입니다.

  다음 예를 살펴과 :

수입의 urllib.parse 
urllib.request 수입

데이터 바이트 = (urllib.parse.urlencode ({ '워드' '안녕하세요'}) = 인코딩 'UTF8')
응답 = urllib.request.urlopen ( "HTTP : // httpbin. 조직 / 이후 "데이터 = 데이터)
인쇄 (response.read (). 디코딩 ( 'UTF8'))

  여기서 우리는 매개 변수 워드, 값 안녕을 전달합니다. 그것은 바이트 형식으로 트랜스 코딩 할 필요가있다. 바이트 전송 () 메소드를 이용한 바이트 스트림은, 상기 방법의 첫 번째 파라미터는 모듈 STR (문자열) 타입을 필요로 상기 문자열을 파라미터로 urllib.parse를 urlencode () 사전의 방법 필요성 번째 파라미터 인코딩 형식 본원 UTF8로 지정된 지정.

  요청이 httpbin.org을 어디 사이트, 그것은 테스트 HTTP 요청을 제공 할 수 있습니다. 우리가 URL 요청이 시간,이 링크는 POST 요청을 테스트 할 수 있습니다, http://httpbin.org/post입니다 그것을 출력 할 수 있습니다 우리가 통과 데이터 매개 변수를 포함하고 요청 된 정보의 일부.

  결과는 다음과 같습니다 :

{
   " 인수 " : {}, 
   " 데이터 " : "" , 
   " 파일 " {} 
   " 형식 " : {
     " 단어 " : " 안녕하세요 " 
  }, 
  " 헤더 " : {
     " 수락 인코딩을 " : " 정체성 " , 
     " 콘텐츠 길이 " : " 10 " , 
     "Content-Type을 " : "응용 프로그램 / x-www-form-urlencoded를 " , 
     " 호스트 " : " httpbin.org " , 
     " 사용자 에이전트 " : " 파이썬 URLLIB / 3.7 " 
  }, 
  " JSON " : NULL, 
   " 기원 " : " 220.170.50.160 , 220.170.50.160 " , 
   " URL " : " https://httpbin.org/post " 
}

  우리는 매개 변수 양식이 데이터의 전송을 POST에 제출하는 방식을 시뮬레이션을 나타냅니다 양식 필드에 나타납니다 전달합니다.

 

  • 시간 제한 매개 변수

 타임 아웃 파라미터는 초 타임 아웃을 설정한다. 요청이 설정된 시간을 초과하는 경우, 응답을 얻을 것을 의미, 그것은 예외가 발생합니다. 이 매개 변수가 지정되지 않은 경우, 전역 기본 시간을 사용합니다. 그것은, FTP 요청을 HTTP, HTTPS를 지원합니다.

수입 urllib.request 

응답 = urllib.request.urlopen ( ' http://httpbin.org/get ' , 제한 시간 = 0.1 )
 인쇄 (response.read ())

  결과는 다음과 같습니다 :

  여기에서 우리는, 제한 시간은 0.1 초 프로그램 후, 서버가 응답하지 않습니다, 0.1 설정 때문에 시간 제한 오류로 모듈을 urllib.error에 속하는 URLError 예외를 걸려.

 

  • 다른 매개 변수

  또한 시간 제한 매개 변수와 데이터 매개 변수뿐만 아니라, 컨텍스트 매개 변수에서는 SSL을 설정하는 ssl.SSLContext 유형이어야합니다.

  CA 인증서와 경로를 지정 또한, cafile에서에서 이러한 두 개의 매개 변수 capath에,이 HTTPS 요청 링크에 유용 할 것이다.

 

 

의뢰

  우리는 기본 요청을 시작 표시 () 메소드를 urlopen 사용하지만, 몇 가지 간단한 매개 변수는 완전한 요청을 구축하는 것만으로는 충분하지 않습니다. 요청 헤더 및 기타 정보의 추가가 필요한 경우,보다 강력한 요청 클래스를 사용하여 구성 될 수있다.

  첫째, 우리는 요청 사용법을 느낄 예제를 사용 :

수입 urllib.request의 

요청 = urllib.request.Request ( ' http://python.org ' ) 
응답 = urllib.request.urlopen (요청)
 인쇄 (response.read (). 디코딩 ( ' UTF8 ' ))

  우리는 여전히 요청을 보낼 urlopen () 메소드를 사용하고, 발견하지만,이 방법은 더 이상 URL하지만, 객체 Requeset 유형입니다 수 있습니다. 한편, 데이터 구조, 우리는 독립적 개체로 요청할 수있는 하나를 구성하여보다 풍부하고 유연한 구성 매개 변수 일 수있다.

  다음과 같이 그 건설은 다음과 같습니다

  클래스 urllib.request.Request (URL 데이터 = 없음, 헤더 = {} origin_req_host = 없음, univerifiable = 거짓, METHOD = 없음)

  • 요청 URL에 대한 첫 번째 매개 변수 URL이, 이것은 필수 매개 변수입니다, 다른 매개 변수는 선택 사항입니다.
  • 두번째 매개 변수 데이터를 송신하는 경우는 사전 인 경우를 urlencode urllib.parse 수있는 응급 모듈 () 코딩 바이트 (바이트 스트림) 타입을 통과해야한다.
  • 세번째 매개 변수는 상기 제 요청, 우리는 상기 요청을 구성하거나 add_header 인스턴스 () 메소드가 추가 요청을 호출 할 때 헤더를 통해 직접 매개 변수를 구성 할 수있다, 사전이다. 요청 헤더 일반적인 사용을 추가하는 브라우저를 위장하기 위해 사용자 에이전트를 수정하는 것입니다, 기본 사용자 에이전트는 파이썬 URLLIB는, 우리는 브라우저를 수정하여 위장하기 위해 할 수있는.
  • 네번째 파라미터 origin_req_host 수단 또는 요청 상대방의 IP 주소의 호스트 이름이다.
  • 다섯 번째 매개 변수는 요청이 확인 불가능한 확인 불가능한 것을 나타냅니다 기본값은 사용자가 요청의 결과를 받아 선택할 수있는 충분한 권한이없는 것을 의미 False입니다. 예를 들어, 우리는 HTML 문서의 사진을 요청하지만, 우리는 자동으로 이미지의 권리를 잡아 할 수있는 권한이 없습니다 다음, 확인 불가능한 값은 True입니다.
  • 여섯 번째 파라미터는 요청을 나타내는데 사용되는 방법 문자열 방법이다. , POST를 GET 등 PUT과 같은.

  

추천

출처www.cnblogs.com/jeavy/p/11521151.html