python3 urllib 웹 다운로드

웹 다운로드 기능 구축

환경 : python3, 모듈 : python 내장 모듈 urllib

import urllib.request
import urllib.error

def get_html(url,user_agent='xxx',num_retries):
    headers = {
    
    'User-agent':user_agent}  #设置默认用户代理
    request = urllib.request.Request(url=url,headers=headers)  #添加请求头参数
    try:
        return urllib.request.urlopen(url=request).read().decode('utf-8')
    except urllib.error.URLError as e:
        print('Error:', e.reason) #抛出异常reason
        html = None
        if num_retries > 0:
        #4xx错误发生在请求存在问题时,5xx错误发生在服务器端存在问题时。只需保证在5xx时重新下载
            if hasattr(e, 'code') and  500 <= e.code < 600:# hasattr() 函数用于判断对象是否包含对应的属性。
                return download(url,user_agent,num_retries-1)
        return html

참고 :
url : 다운로드 URL
user_agent : 사용자 에이전트
num_retries : 재시도 횟수이
함수는 웹 페이지를 다운로드하고 HTML을 반환하고, 예외를 포착하고, 서버 측 오류에 대한 다운로드를 재 시도하고, 사용자 에이전트를 설정합니다.

추천

출처blog.csdn.net/heheyangxyy/article/details/113665314