python requests 모듈의 사용 예시
requests를 사용하는 이유:
아날로그 get 요청:
token 가져오기
#
get_param_dict={
"grant_type":"**************",
"appid":"**************",
"secret":"**************",
}
response = requests.get(url='https://api.weixin.qq.com/cgi-bin/token', # url
params=get_param_dict) #
print(response.content.decode('utf-8'))
아날로그 요청 헤더 정보
주:requests 요청 헤더는python,requests로 시작되기 때문에 대부분의 인터페이스는 수동으로 헤더 정보를 추가해야 합니다
# get ,( , )
#
get_param_dict ={
"wd":"newdream"
}
# ( )
header_info_dict = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36",
"Accpet":"text/plain, */*; q=0.01"
}
response = requests.get(url = 'https://www.baidu.com/s',
params=get_param_dict,headers=header_info_dict)
print(response.content.decode('utf-8'))
아날로그post 요청
import requests,json
# requests post
#
url_param_doct = {"access_token": "43_XcK_1rvR8VPgicGGzq7Vp2QrGx30Kwhy9SSShoVTQs11G_jP9aqhy2bwRQFuG2hYzkwVjphJFfPj8WYQR8vgfu5Xej7KaZBiyPDJ9sYoCKte78sqgtBdCf6N5S8QosNXBOFSEJnzLMbxJwCOTWAgAAANQU"}
post_param_data = {
"tag" : { "name" : " " }
}
response = requests.post(url='https://api.weixin.qq.com/cgi-bin/tags/create',
params=url_param_doct,
# json=post_param_data # json
data=json.dumps(post_param_data) # data, data , json dumps
)
print(response.content.decode('utf-8'))
requests 파일 업로드
import requests,os
# post
current_path = os.path.dirname(__file__) # os
excel_path = os.path.join(current_path,'..','data','j.xlsx') # join
excel_file = {'file':open(excel_path,'rb')} # ,open rb:
response = requests.post(url='https://2.python-requests.org/', # requests
files=excel_file) # files
print( response.content.decode('utf-8') )
requests 설정 에이전트
import requests
# : ?
# ,
#
#
proxy_server = {'http':'http://127.0.0.1:8888',
'https':'http://127.0.0.1:8888'} #
proxy_user_pass = {
'https':'http://uesrname:[email protected]:8888' #
}
response = requests.get(url= 'https://baidu.com',
proxies=proxy_server) # proxies
print(response.status_code)
time 모듈 설정 요청 시간 초과
만약 요청이 오랫동안 결과가 없다면 전체 프로젝트의 효율이 매우 낮아질 것이다. 이때 우리는 요청에 대해 강제적인 요구를 해야 한다
그로 하여금 반드시 특정한 시간 내에 결과를 되돌려야 한다. 그렇지 않으면 잘못을 보고할 것이다.
#
import requests
import time
print(time.time()) #
response = requests.get(url='https://www.baidu.com',timeout=3) # timeout=3: (3 ) ,
print(time.time())
retrying 모듈 설정 새로 고침
시간 초과 파라미터를 사용하면 우리의 전체적인 요청 속도를 높일 수 있지만, 정상적인 웹 페이지를 훑어보았을 때, 속도가 매우 느린 상황이 발생하면, 우리가 선택한 것은 웹 페이지를 새로 고치는 것이다
retrying 모듈은 우리가 해결하는 것을 도울 수 있다.retrying 모듈에서 제공하는 retry 모듈을 사용합니다
장식기 방식으로 사용하면 장식된 함수가retry에서 매개 변수stop_를 반복적으로 실행할 수 있습니다max_attempt_number, 함수 오류 보고한 후 다시 실행하기
최대 실행 횟수의 상한선에 도달합니다. 만약에 매번 오류를 보고하면 전체 함수가 오류를 보고하고 중간에 성공하면 프로그램은 계속 뒤로 실행됩니다.
import requests
from retrying import retry
# , , ,
@retry(stop_max_attempt_number=3)
def get_response(url):
response = requests.get(url, timeout=2)
return response
retrying_requests = get_response("https://www.baidu.com")
print(retrying_requests.content.decode())
쿠키 설정
이점: 로그인한 페이지에 접근할 수 있음
나쁜 점: 쿠키는 사용자의 정보에 대응하기 때문에 요청이 너무 잦아서 상대방이 파충류로 식별될 가능성이 높다
어떻게 해결합니까?여러 계정 사용
# requests session
import requests
# formdata ,
post_data = {
"username": "xxxxx",
"password": "xxxxx"
}
# session : session
session = requests.Session()
# session , session
session.post(url="https://www.baidu.com", data=post_data)
response = session.get("https://www.baidu.com")
# session
print(response.content.decode())
인증서 인증 오류 처리
import requests
# : , , 200
requests.packages.urllib3.disable_warnings()#
# , , 200 , verify=False, ,
response = requests.get('https://www.12306.cn',verify=False)
print(response.content.decode('utf-8'))
# : pyopenssl # pip3 install -U requests[security]
response = requests.get('https://www.12306.cn')
print(response.content.decode('utf-8'))
# : xxx.crt ,
response = requests.get('https://www.12306.cn',cert=('/path/server.crt', '/path/key'))
requests+jsonpath 분석 데이터
hosts = 'https://api.weixin.qq.com' #
# token
get_param_dict = {
"grant_type":"**********",
"appid":"*************",
"secret":"***************"
}
response = requests.get('%s/cgi-bin/token'%hosts,params=get_param_dict)
json_obj = response.json()
# json : json , json
token_id = jsonpath.jsonpath(json_obj,'$.access_token')[0] # ,
print(token_id)
이상은pythonrequests 모듈의 사용에 대한 상세한 내용입니다.pythonrequests 모듈의 사용에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.