마지막으로 리디렉션된 파일 다운로드, 대용량 파일 다운로드, 멀티 스레드 다운로드 완료 및 기타 전략과 같이 발생할 수 있는 다양한 문제를 극복하는 방법을 배우게 됩니다.
1. 요청 사용
요청 모듈을 사용하여 URL에서 파일을 다운로드할 수 있습니다.
다음 코드를 고려하세요.
단순히 요청 모듈의 get 메소드를 사용하여 URL을 얻고 결과를 "myfile"이라는 변수에 저장합니다. 그런 다음 이 변수의 내용을 파일에 씁니다.
2. wget 사용
Python의 wget 모듈을 사용하여 URL에서 파일을 다운로드할 수도 있습니다. 다음 명령에 따라 pip를 사용하여 wget 모듈을 설치할 수 있습니다.
Python용 로고 이미지를 다운로드하는 데 사용할 다음 코드를 고려하세요.
이 코드에서는 URL과 경로(이미지가 저장될 위치)가 wget 모듈의 다운로드 방법으로 전달됩니다.
3. 리디렉션된 파일 다운로드
이 섹션에서는 요청을 사용하여 .pdf 파일을 통해 다른 URL로 리디렉션되는 URL에서 파일을 다운로드하는 방법을 알아봅니다. URL은 다음과 같습니다.
이 PDF 파일을 다운로드하려면 다음 코드를 사용하세요.
이 코드에서는 첫 번째 단계에서 URL을 지정합니다. 그런 다음 요청 모듈의 get 메소드를 사용하여 URL을 가져옵니다. get 메소드에서 URL의 리디렉션을 허용하고 리디렉션된 콘텐츠가 변수 myfile에 할당되도록 허용_redirects를 True로 설정합니다.
마지막으로 얻은 내용을 쓰기 위해 파일을 엽니다.
4. 대용량 파일을 덩어리로 다운로드
다음 코드를 고려하세요.
먼저 이전과 마찬가지로 요청 모듈의 get 메소드를 사용하지만 이번에는 스트림 속성을 True로 설정하겠습니다.
다음으로 현재 작업 디렉터리에 PythonBook.pdf라는 파일을 만들고 쓰기 위해 엽니다.
그런 다음 매번 다운로드할 청크 크기를 지정합니다. 이를 1024바이트로 설정한 다음 각 청크를 반복하고 청크가 끝날 때까지 해당 청크를 파일에 기록했습니다.
아름답지 않나요? 걱정하지 마세요. 나중에 다운로드 과정의 진행률 표시줄이 표시됩니다.
5. 여러 파일 다운로드(병렬/배치 다운로드)
여러 파일을 동시에 다운로드하려면 다음 모듈을 가져오세요.
소요 시간을 확인하기 위해 os 및 시간 모듈을 가져왔습니다. 파일을 다운로드합니다. ThreadPool 모듈을 사용하면 풀을 사용하여 여러 스레드 또는 프로세스를 실행할 수 있습니다.
파일에 대한 응답을 분할하는 간단한 함수를 만들어 보겠습니다.
URL은 다운로드하려는 페이지의 경로와 URL을 지정하는 2D 배열입니다.
이전 섹션에서 했던 것처럼 이 URL을 request.get에 전달합니다. 마지막으로 파일(URL에 지정된 경로)을 열고 페이지 내용을 작성합니다.
이제 각 URL에 대해 개별적으로 이 함수를 호출하거나 모든 URL에 대해 동시에 이 함수를 호출할 수 있습니다. 타이머에 주의하면서 for 루프에서 각 URL에 대해 개별적으로 이 함수를 호출해 보겠습니다.
이제 for 루프를 다음 코드 줄로 바꿉니다.
스크립트를 실행합니다.
6. 다운로드 시 진행률 표시줄을 사용하세요
진행률 표시줄은 클린트 모듈의 UI 구성요소입니다. clint 모듈을 설치하려면 다음 명령을 입력하십시오.
다음 코드를 고려하십시오.
이 코드에서는 먼저 요청 모듈을 가져온 다음 clint.textui에서 진행 구성 요소를 가져왔습니다. 유일한 차이점은 for 루프에 있습니다. 파일에 내용을 쓸 때 진행률 표시줄 모듈의 bar 메서드를 사용합니다.
7. urllib를 사용하여 웹페이지를 다운로드하세요
이 섹션에서는 urllib를 사용하여 웹페이지를 다운로드해 보겠습니다.
urllib 라이브러리는 Python의 표준 라이브러리이므로 설치할 필요가 없습니다.
다음 코드 줄을 사용하면 웹페이지를 쉽게 다운로드할 수 있습니다.
여기서 파일을 저장할 대상과 저장할 URL을 지정하세요.
이 코드에서는 urlretrieve 메소드를 사용하여 파일의 URL과 파일을 저장할 경로를 전달합니다. 파일 확장자는 .html입니다.
8. 프록시를 통해 다운로드
파일을 다운로드하기 위해 프록시를 사용해야 하는 경우 urllib 모듈의 ProxyHandler를 사용할 수 있습니다. 다음 코드를 살펴보세요.
이 코드에서는 프록시 객체를 생성하고 urllib의 build_opener 메소드를 호출하고 프록시 객체를 전달하여 프록시를 엽니다. 그런 다음 페이지를 가져오기 위한 요청을 만듭니다.
또한 공식 문서에 설명된 대로 요청 모듈을 사용할 수도 있습니다.
요청 모듈을 가져오고 프록시 객체를 생성하기만 하면 됩니다. 그러면 파일을 받으실 수 있습니다.
9. urllib3 사용
urllib3은 urllib 모듈의 향상된 버전입니다. pip를 사용하여 다운로드하고 설치할 수 있습니다.
우리는 urllib3을 사용하여 웹 페이지를 가져와 텍스트 파일에 저장합니다.
다음 모듈을 가져옵니다.
파일을 처리할 때 shutdown 모듈을 사용합니다.
이제 다음과 같이 URL 문자열 변수를 초기화합니다.
그런 다음 필요한 연결 풀링을 추적하는 urllib3의 PoolManager를 사용합니다.
파일 만들기:
마지막으로 GET 요청을 보내 URL을 가져와 파일을 연 다음 파일에 응답을 씁니다.
10 Boto3을 사용하여 S3에서 다운로드합니다. 파일
Amazon S3에서 파일을 다운로드하려면 Python boto3 모듈을 사용할 수 있습니다.
시작하기 전에 pip를 사용하여 awscli 모듈을 설치해야 합니다.
AWS 구성의 경우 다음 명령을 실행합니다.
이제 다음 명령에 따라 세부 정보를 입력합니다.
Amazon S3에서 파일을 다운로드하려면 boto3 및 botocore를 가져와야 합니다. Boto3는 Python이 Amazon 웹 서비스(예: S3)에 액세스할 수 있도록 하는 Amazon SDK입니다. Botocore는 Amazon 웹 서비스와 상호 작용하기 위한 명령줄 서비스를 제공합니다.
Botocore는 awscli와 함께 제공됩니다. boto3을 설치하려면 다음 명령을 실행합니다.
이제 다음 두 모듈을 가져옵니다.
Amazon에서 파일을 다운로드하는 동안 세 가지 매개 변수가 필요합니다.
- 버킷 이름
- 다음을 다운로드해야 합니다. 파일 이름
- 다운로드 후 파일 이름
초기화 변수:
이제 세션의 리소스를 사용하기 위해 변수를 초기화하겠습니다. 이를 위해 boto3의 resources() 메소드를 호출하고 s3인 서비스를 전달합니다:
마지막으로 download_file 메소드를 사용하여 파일을 다운로드하고 변수를 전달합니다:
11. asyncio
asyncio 모듈 사용하기 주로 시스템 이벤트를 처리하는 데 사용됩니다. 이벤트가 발생할 때까지 기다린 다음 해당 이벤트에 반응하는 이벤트 루프를 중심으로 작동합니다. 반응은 다른 함수를 호출하는 것일 수 있습니다. 이 프로세스를 이벤트 처리라고 합니다. asyncio 모듈은 이벤트 처리를 위해 코루틴을 사용합니다.
asyncio 이벤트 처리 및 코루틴 기능을 사용하기 위해 asyncio 모듈을 가져옵니다.
이제 asyncio 코루틴 메서드를 다음과 같이 정의합니다.
키워드 async는 이것이 기본 asyncio 코루틴임을 의미합니다. 코루틴 내부에는 특정 값을 반환하는 wait 키워드가 있습니다. return 키워드를 사용할 수도 있습니다.
이제 코루틴을 사용하여 웹사이트에서 파일을 다운로드하는 코드를 만들어 보겠습니다.
이 코드에서는 파일을 다운로드하고 메시지를 반환하는 비동기 코루틴 함수를 만들었습니다.
그런 다음 URL을 기다리고 모든 URL을 대기열로 그룹화하는 또 다른 비동기 코루틴을 사용하여 main_func를 호출합니다. asyncio의 대기 기능은 코루틴이 완료될 때까지 기다립니다.
이제 코루틴을 시작하려면 asyncio의 get_event_loop() 메서드를 사용하여 코루틴을 이벤트 루프에 넣어야 하며, 마지막으로 asyncio의 run_until_complete() 메서드를 사용하여 해당 이벤트 루프를 실행합니다.
Python을 사용하여 파일을 다운로드하는 것은 재미있습니다. 이 튜토리얼이 여러분에게 도움이 되기를 바랍니다!
위 내용은 Python을 사용하여 다운로드된 11가지 자세(각각은 이전 것보다 더 발전됨)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Python은 데이터 과학, 웹 개발 및 자동화 작업에 적합한 반면 C는 시스템 프로그래밍, 게임 개발 및 임베디드 시스템에 적합합니다. Python은 단순성과 강력한 생태계로 유명하며 C는 고성능 및 기본 제어 기능으로 유명합니다.

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 같은 작업에 적합합니다.

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...

경치 좋은 스팟 댓글 분석에서 Jieba Word 세분화 문제를 해결하는 방법은 무엇입니까? 경치가 좋은 스팟 댓글 및 분석을 수행 할 때 종종 Jieba Word 세분화 도구를 사용하여 텍스트를 처리합니다 ...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
