Hướng dẫn how do you download and save a url in python? - làm cách nào để tải xuống và lưu url trong python?

Tôi mới đến Python và tôi đã trải qua câu hỏi và trả lời trên trang web này, để có câu trả lời cho câu hỏi của tôi. Tuy nhiên, tôi là người mới bắt đầu và tôi cảm thấy khó hiểu một số giải pháp. Tôi cần một giải pháp rất cơ bản.

Ai đó có thể vui lòng giải thích một giải pháp đơn giản để 'tải xuống tệp thông qua HTTP' và 'Lưu nó vào đĩa, trong Windows', cho tôi không?

Tôi cũng không chắc làm thế nào để sử dụng các mô -đun SHOTIL và HĐH.

Tệp tôi muốn tải xuống dưới 500 MB và là tệp lưu trữ .gz. Nếu ai đó có thể giải thích cách trích xuất kho lưu trữ và sử dụng các tệp trong đó, điều đó cũng rất tuyệt!

Đây là một giải pháp một phần mà tôi đã viết từ các câu trả lời khác nhau kết hợp:

import requests
import os
import shutil

global dump

def download_file():
    global dump
    url = "http://randomsite.com/file.gz"
    file = requests.get(url, stream=True)
    dump = file.raw

def save_file():
    global dump
    location = os.path.abspath("D:\folder\file.gz")
    with open("file.gz", 'wb') as location:
        shutil.copyfileobj(dump, location)
    del dump

Ai đó có thể chỉ ra lỗi (cấp độ mới bắt đầu) và giải thích bất kỳ phương pháp nào dễ dàng hơn để thực hiện điều này?

Thanks!

Một python có thể được sử dụng để tải xuống một văn bản hoặc dữ liệu nhị phân từ URL bằng cách đọc phản hồi của urllib.request.urropen.

Dữ liệu được tải xuống có thể được lưu trữ dưới dạng biến và/hoặc lưu vào ổ đĩa cục bộ dưới dạng tệp.

Dưới đây bạn sẽ tìm thấy các ví dụ về đoạn mã Python để tải xuống các loại tệp khác nhau từ URL và lưu trữ chúng dưới dạng biến hoặc lưu cục bộ.

Mẹo thú vị: Cách đặt tiêu đề yêu cầu HTTP của Agent-Agent trong Python! Đọc thêm → How to set the ‘User-Agent’ HTTP request header in Python! Read More →

Dữ liệu văn bản

Sử dụng đoạn trích python sau đây để tải xuống trang web hoặc tệp văn bản từ URL, lưu nội dung của nó vào một biến và sau đó in nó:

from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)

Đọc và giải mã:

from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
4 Đầu tiên tải dữ liệu theo định dạng nhị phân, sau đó
from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
5 chuyển đổi nó thành một chuỗi.
The
from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
4 first downloads the data in a binary format, then the
from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
5 converts it to a string.

Nếu bạn cần lưu dữ liệu đã tải xuống dưới dạng tệp văn bản, bạn có thể thực hiện điều này như sau:

from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"
save_as = "file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

# Save to file
with open(save_as, 'w') as download:
    download.write(content)

Dữ liệu nhị phân

Để tải xuống một tệp nhị phân (ví dụ:

from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
6,
from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
7,
from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
8) từ URL và lưu nó vào ổ đĩa cục bộ của bạn, hãy sử dụng mã Python, như sau:

from urllib.request import urlopen

url = "https://www.shellhacks.com/file.pdf"
save_as = "file.pdf"

# Download from URL
with urlopen(url) as file:
    content = file.read()

# Save to file
with open(save_as, 'wb') as download:
    download.write(content)

from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
9 có nghĩa là bạn đang mở tệp cho mục đích viết ở định dạng nhị phân.writing purposes in a binary format.

Nếu bạn không chọn chế độ nhị phân, bạn sẽ gặp lỗi này:

Traceback (most recent call last):
  File "python-file-downloader.py", line 12, in 
    download.write(content)
TypeError: write() argument must be str, not bytes

Mẹo thú vị: Cách tự động hóa đăng nhập vào một trang web bằng Selenium trong Python! Đọc thêm → How to automate login to a website using Selenium in Python! Read More →


Python cung cấp các mô -đun khác nhau như urllib, yêu cầu vv để 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 một cách hiệu quả từ các URL.

Hãy bắt đầu xem xét thủ tục từng bước để tải xuống các 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.

Thí 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ả

Hướng dẫn how do you download and save a url in python? - làm cách nào để tải xuống và lưu url trong python?

Chúng ta 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 ta 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, vv từ web. Vì vậy, trước tiên, hãy để có được 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, liên quan đến việc tìm kiếm các tiêu đề của một URL trước khi thực sự tải xuống nó. Điều này cho phép chúng tôi bỏ qua việc tải xuống các tệp mà người sói có nghĩa là sẽ được tải xuống.

from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
0

Để hạn chế tải xuống theo kích thước tệp, chúng tôi có thể lấy FileZie 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.

from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
1

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

Để có được tên tệp, chúng ta có thể phân tích URL. Dưới đây là một thói quen mẫu lấy chuỗi cuối cùng sau khi chao đảo (/).

from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
2

Trên đây 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ệp không có trong URL chẳng hạn - http://url.com/doad. Trong trường hợp như vậy, chúng ta cần phải có tiêu đề xử lý nội dung, chứa thông tin tên tệp.

from urllib.request import urlopen

url = "https://www.shellhacks.com/file.csv"

# Download from URL
with urlopen(url) as file:
    content = file.read().decode()

print(content)
3

Mã phân tích 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 đề xử lý nội dung hầu hết thời gian.

Hướng dẫn how do you download and save a url in python? - làm cách nào để tải xuống và lưu url trong python?

Cập nhật vào ngày 30 tháng 3 năm 2019 22:30:26

  • Câu hỏi và câu trả lời liên quan
  • Tải xuống tệp bằng trình kết nối SAP .NET
  • Làm thế nào các tệp được trích xuất từ ​​một tệp tar bằng Python?
  • Đổi tên nhiều tệp bằng Python
  • Sử dụng dịch vụ web SAP từ tệp WSDL
  • Web Scraping bằng Python và Scracy?
  • Python thực hiện quét web bằng LXML
  • Làm thế nào để sao chép các tệp từ thư mục này sang thư mục khác bằng Python?
  • Làm thế nào để sao chép các tệp từ máy chủ này sang máy chủ khác bằng Python?
  • Làm thế nào để chuyển đổi các tệp PDF sang các tệp Excel bằng Python?
  • Làm thế nào để sao chép một số tệp nhất định từ thư mục này sang thư mục khác bằng Python?
  • Thực hiện quét web bằng LXML trong Python?
  • HTML5 có cho phép bạn tương tác với các tệp máy khách cục bộ từ trong trình duyệt web không?
  • Tạo các tệp và thư mục tạm thời bằng cách sử dụng Python
  • Làm thế nào để xóa các tệp hoán đổi bằng Python?
  • Cách tạo các tệp PowerPoint bằng Python

Làm cách nào để tải xuống và lưu một tệp trong Python?

Nhập mô -đun. Nhập yêu cầu ..
Nhận liên kết hoặc URL. url = 'https://www.facebook.com/favicon.ico' r = requests.get (url, allow_redirects = true).
Lưu nội dung với tên. Mở ('Facebook.ICO', 'WB'). Viết (R.Content) lưu tệp dưới dạng Facebook. ....
Nhận tên tệp từ một url. Để có được tên tệp, chúng ta có thể phân tích URL ..

Làm cách nào để tải xuống nội dung từ URL?

Tải xuống tệp từ URL..
Đi đến url ..
Nhấp chuột phải vào trang web ..
Chọn Lưu dưới dạng ....

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

Làm thế nào để tự động tải xuống một tệp từ một trang web bằng cách sử dụng mã Python..
Nhập Urllib.lời yêu cầu..
pdf_path = "".
def download_file (download_url, tên tệp):.
Phản hồi = Urllib.lời yêu cầu.Urlopen (download_url).
File = Open (FileName + ".pdf", 'WB').
tập tin.Viết (Phản hồi. Đọc ()).
tập tin.gần().

Làm cách nào để nhập dữ liệu URL vào Python?

Tìm nạp URL..
Nhập Urllib.Request với Urllib.lời yêu cầu.URLOPEN ('http://python.org/') dưới dạng phản hồi: html = phản hồi.....
Nhập khẩu độ nhập khẩu Tempfile Nhập khẩu Urllib.Request với Urllib.lời yêu cầu.URLOPEN ('http://python.org/') làm phản hồi: với tempfile.....
Nhập urllib.Request req = urllib.lời yêu cầu..