python requests 모듈의 사용 예시

5981 단어 pythonrequests

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 모듈의 사용에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!

    좋은 웹페이지 즐겨찾기