Python cách nhanh nhất để tải xuống tệp

Python cung cấp các mô-đun khác nhau như urllib, yêu cầu, v.v. để tải xuống các tệp từ web. Tôi sẽ sử dụng thư viện yêu cầu của python để tải xuống các tệp từ URL một cách hiệu quả

Hãy bắt đầu xem quy trình từng bước để tải xuống tệp bằng URL bằng thư viện yêu cầu−

1. Nhập mô-đun

import requests

2. Nhận liên kết hoặc url

url = 'https://www.facebook.com/favicon.ico'
r = requests.get(url, allow_redirects=True)

3. Lưu nội dung với tên

open('facebook.ico', 'wb').write(r.content)

lưu tệp dưới dạng facebook. ico

Ví dụ

import requests


url = 'https://www.facebook.com/favicon.ico'
r = requests.get(url, allow_redirects=True)

open('facebook.ico', 'wb').write(r.content)

Kết quả

Python cách nhanh nhất để tải xuống tệp

Chúng tôi có thể thấy tệp được tải xuống (biểu tượng) trong thư mục làm việc hiện tại của chúng tôi

Nhưng chúng tôi có thể cần tải xuống các loại tệp khác nhau như hình ảnh, văn bản, video, v.v. từ web. Vì vậy, trước tiên hãy lấy loại dữ liệu mà url đang liên kết đến−

>>> r = requests.get(url, allow_redirects=True)
>>> print(r.headers.get('content-type'))
image/png

Tuy nhiên, có một cách thông minh hơn, đó là chỉ cần tìm nạp các tiêu đề của url trước khi thực sự tải xuống. Điều này cho phép chúng tôi bỏ qua việc tải xuống các tệp không được tải xuống

>>> print(is_downloadable('https://www.youtube.com/watch?v=xCglV_dqFGI'))
False
>>> print(is_downloadable('https://www.facebook.com/favicon.ico'))
True

Để hạn chế tải xuống theo kích thước tệp, chúng tôi có thể lấy tệp tin từ tiêu đề độ dài nội dung và sau đó thực hiện theo yêu cầu của chúng tôi

contentLength = header.get('content-length', None)
if contentLength and contentLength > 2e8: # 200 mb approx
return False

Nhận tên tệp từ một URL

Để lấy tên tệp, chúng ta có thể phân tích cú pháp url. Dưới đây là một quy trình mẫu tìm nạp chuỗi cuối cùng sau dấu gạch chéo ngược (/)

url= "http://www.computersolution.tech/wp-content/uploads/2016/05/tutorialspoint-logo.png"
if url.find('/'):
print(url.rsplit('/', 1)[1]

Ở trên sẽ cung cấp tên tệp của url. Tuy nhiên, có nhiều trường hợp thông tin tên tệp không có trong url chẳng hạn – http. // url. com/tải xuống. Trong trường hợp như vậy, chúng ta cần lấy tiêu đề Bố trí nội dung, chứa thông tin tên tệp

________số 8_______

Đoạn mã phân tích cú pháp url ở trên kết hợp với chương trình trên sẽ cung cấp cho bạn tên tệp từ tiêu đề Bố trí nội dung hầu hết thời gian

Nếu bạn có bộ dữ liệu hoặc kho lưu trữ khác mà bạn muốn cung cấp cho người dùng của mình và đảm bảo rằng họ luôn có phiên bản mới nhất và chúng được tải xuống đúng cách, thì fastdownload có thể trợ giúp

Cài đặt

sử dụng pip

pip install fastdownload

hoặc sử dụng conda

conda install -c fastai fastdownload

Chuyện này là sao?

Tình huống mà bạn có thể muốn sử dụng fastdownload là khi bạn có một hoặc nhiều URL trỏ đến một số kho lưu trữ mà bạn muốn cung cấp và bạn muốn đảm bảo rằng người dùng của mình tải xuống các kho lưu trữ đó một cách chính xác, có phiên bản mới nhất và điều đó thật dễ dàng

Người dùng của bạn chỉ cần gọi một phương thức duy nhất,

conda install -c fastai fastdownload
0, chuyển URL được yêu cầu và URL sẽ được tải xuống và trích xuất vào các thư mục bạn chọn. Đường dẫn đến tập tin giải nén được trả lại. Nếu URL đó đã được tải xuống, thì kho lưu trữ hoặc nội dung được lưu trong bộ nhớ cache sẽ tự động được sử dụng. Tuy nhiên, nếu kích thước hoặc hàm băm đó của kho lưu trữ khác với kích thước của nó, thì người dùng sẽ được thông báo và một phiên bản mới sẽ được tải xuống

Trong tương lai, bạn có thể muốn cập nhật một hoặc nhiều bản lưu trữ của mình. Khi bạn làm như vậy, fastdownload sẽ đảm bảo người dùng của bạn có phiên bản mới nhất, bằng cách kiểm tra kho lưu trữ đã tải xuống của họ dựa trên thông tin băm và kích thước tệp được cập nhật của bạn

Chẳng hạn,

conda install -c fastai fastdownload
2 sử dụng fastdownload để cung cấp quyền truy cập vào bộ dữ liệu cho deep learning.
conda install -c fastai fastdownload
2 người dùng có thể tải xuống và giải nén chúng bằng một lệnh duy nhất, sử dụng giá trị trả về để truy cập các tệp. Các tệp được đặt tự động trong các thư mục con thích hợp của thư mục
conda install -c fastai fastdownload
5 trong homedir của người dùng. Nếu tập dữ liệu được cập nhật, người dùng sẽ được thông báo vào lần tiếp theo họ sử dụng tập dữ liệu và phiên bản mới nhất sẽ tự động được tải xuống và trích xuất cho họ

Cách sử dụng. Tải tập tin

Khi người dùng của bạn tải xuống một kho lưu trữ, fastdownload sẽ tự động lưu nó vào một thư mục, kiểm tra xem kích thước và hàm băm có khớp không và trích xuất nội dung. Sử dụng tối thiểu để tải xuống và giải nén là

from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')

Sau đó,

conda install -c fastai fastdownload
7 sẽ chứa đường dẫn chứa các tệp được giải nén. Theo mặc định, các tệp lưu trữ được lưu vào
conda install -c fastai fastdownload
8 và được trích xuất vào
conda install -c fastai fastdownload
9.
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
0 mặc định là
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
1. Nếu có nhiều tệp hoặc thư mục trong thư mục gốc của kho lưu trữ đã tải xuống thì một thư mục mới sẽ được tạo trong
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
2 cho nội dung

Thay vì

from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
3, hãy sử dụng
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
4 để tải xuống URL mà không cần giải nén hoặc
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
5 để giải nén URL mà không cần tải xuống (giả sử URL đã được tải xuống thư mục
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
6). Tất cả các phương thức này đều chấp nhận tham số
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
7 sẽ tải xuống/giải nén kho lưu trữ ngay cả khi nó đã có sẵn

Bạn có thể thay đổi bất kỳ hoặc tất cả các đường dẫn

from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
8,
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
6 và
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
2 bằng cách chuyển chúng tới
d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
1

d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')

Bạn có thể xóa tệp lưu trữ đã lưu trong bộ nhớ cache và/hoặc nội dung được trích xuất bằng

d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
2

d.rm('https://...')

Cách sử dụng. cung cấp tài liệu lưu trữ để tải xuống

fastdownload sẽ thêm tệp

d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
4 vào mô-đun Python chứa kích thước tệp và giá trị băm cho kho lưu trữ của bạn. Tệp nằm trong cùng thư mục với mô-đun bạn chọn, e. g

d = FastDownload(module=fastai.some_module)

Sau đó, sử dụng

d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
5 để tạo hoặc cập nhật kích thước và hàm băm cho một URL

d.update('https://...')

Bây giờ, bạn sẽ thấy có một tệp tên là

d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
4 trong cùng thư mục chứa tệp
d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
7, chứa một lệnh Python với URL, kích thước và hàm băm cho tệp này. Nếu trước đây bạn đã tải tệp này xuống đường dẫn
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
6 của mình thì tệp này sẽ được sử dụng thay vì tải xuống một bản sao mới. Trước tiên hãy sử dụng
d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
9 để tải xuống một bản sao mới nếu bạn có nó trong kho lưu trữ của mình

Tập tin cấu hình

Nếu có một tệp có tên là

d.rm('https://...')
0 trong thư mục
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
8 của bạn, thì các khóa
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
6 và
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
2 sẽ được sử dụng làm giá trị mặc định cho
d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
1. Tệp phải ở định dạng configparser. Đây là một mẫu
d.rm('https://...')
0

[DEFAULT]         
archive = downloaded
data = extracted

Nếu không có tệp ini, một tệp sẽ được tạo tự động cho bạn bằng cách sử dụng thông tin chi tiết bạn chuyển đến

d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
1

Bạn có thể thêm bất kỳ cặp khóa/giá trị bổ sung nào vào tệp cấu hình mà bạn muốn. Khi bạn gọi

conda install -c fastai fastdownload
0 vượt qua
d.rm('https://...')
8 để sử dụng khóa khác với
from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')
2 để chọn vị trí trích xuất

Làm cách nào để tự động tải xuống tệp từ trang web bằng Python?

Để tải xuống tệp từ một URL bằng Python, hãy làm theo ba bước sau. .
Cài đặt mô-đun yêu cầu và nhập nó vào dự án của bạn
sử dụng yêu cầu. get() để tải xuống dữ liệu đằng sau URL đó
Ghi tệp vào một tệp trong hệ thống của bạn bằng cách gọi open()

Làm cách nào để tải xuống tệp bằng Selenium Python?

Cách tải tệp xuống bằng Selenium và Python .
điều kiện tiên quyết
Bước 1. Nhập các gói cần thiết vào tập lệnh kiểm tra Python
Bước 2. Đặt tùy chọn Chrome
Bước 3. Tạo đối tượng trình điều khiển chrome với các tùy chọn
Bước 4. Tạo một tập lệnh để điều hướng đến trang web và nhấp vào tải xuống. csv
Bước 5. Chạy thử nghiệm

WB trong Python là gì?

Tệp được tự động mở ở chế độ văn bản trong Python. Khi chọn chế độ, hãy bao gồm chữ "b" cho chế độ nhị phân. Theo mặc định, hàm open() mở tệp ở định dạng văn bản. Do đó, chế độ "wb" mở tệp ở định dạng nhị phân để ghi trong khi tùy chọn "rb" mở tệp ở định dạng nhị phân để đọc.