Python urllib 라이브러리에서 헤더를 추가하는 방법

일부 사이트를 요청할 때, 우리는 요청 헤더를 붙여야만 웹 페이지의 캡처를 완성할 수 있다. 그렇지 않으면 오류가 생겨서 캡처한 웹 페이지로 돌아갈 수 없다.다음은 요청 헤더를 추가하는 두 가지 방법을 소개한다.
방법1: 빌드_opener 및addheaders 완료

import urllib.request
url="http://www.meizitu.com"
# : urllib  headers 
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE")

opener=urllib.request.build_opener()
opener.addheaders=[headers]
data=opener.open(url)
print(data.read())
주의: 여기 있는 헤더를 그룹 형식으로 써야 합니다.사전 유형으로 쓰면 오류가 발생합니다!
메서드 2, Request 인스턴스 객체 만들기

#  1
import urllib.request
url="http://www.meizitu.com"
# : urllib  headers  
headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE"}
req=urllib.request.Request(url=url,headers=headers)
file=urllib.request.urlopen(req)

# , “ignore” 
print(file.read().decode("utf-8",'ignore'))
주의: 여기 있는 헤더를 사전 형식으로 써야 합니다.
Reques 대상을 만듭니다. 필요한 헤더, URL,proxy를 모두 넣거나post 요청에서 인코딩된 데이터 값을 넣고 urlopen으로 열면 편리합니다.
그리고 이런 방법은add_headers () 는 다음과 같이 headers 를 추가합니다.

import urllib.request
try:
  url="http://www.meizitu.com"
  req=urllib.request.Request(url=url)

  req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE")
  file=urllib.request.urlopen(req,timeout=10.1)

  print(file.read().decode("utf-8",'ignore'))
except Exception as e:
  print(" ",str(e))
요약: 상기 두 가지 방법을 통해 요청 헤더의 관련 매개 변수 설정을 완성할 수 있으나headers가 사전 형식으로 전송되는지 모듈 형식으로 전송되는지 주의해야 한다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기