Hướng dẫn how do i download from python using wget? - làm cách nào để tải xuống từ python bằng wget?

Tôi đang cố gắng tạo ra một chức năng Python làm điều tương tự như lệnh WGET này:

wget -c --read-timeout=5 --tries=0 "$URL"

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
5 - Tiếp tục từ nơi bạn rời đi nếu tải xuống bị gián đoạn.

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
6 - Nếu không có dữ liệu mới đến trong hơn 5 giây, hãy từ bỏ và thử lại. Cho
>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
5 Điều này có nghĩa là nó sẽ thử lại từ nơi nó rời đi.

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
8 - Thử lại mãi mãi.

Ba đối số được sử dụng trong kết quả Tandem trong việc tải xuống không thể thất bại.

Tôi muốn sao chép các tính năng đó trong tập lệnh Python của mình, nhưng tôi không biết bắt đầu từ đâu ...

Đã hỏi ngày 21 tháng 6 năm 2014 lúc 23:46Jun 21, 2014 at 23:46

2

Ngoài ra còn có một mô -đun Python đẹp có tên

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
9 khá dễ sử dụng. Hãy nhớ rằng gói chưa được cập nhật kể từ năm 2015 và chưa thực hiện một số tính năng quan trọng, vì vậy có thể tốt hơn là sử dụng các phương pháp khác. Nó phụ thuộc hoàn toàn vào trường hợp sử dụng của bạn. Để tải xuống đơn giản, mô -đun này là vé. Nếu bạn cần phải làm nhiều hơn, có những giải pháp khác ngoài kia.

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'

Enjoy.

Tuy nhiên, nếu

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
9 không hoạt động [tôi đã gặp sự cố với một số tệp PDF nhất định], hãy thử giải pháp này.

Chỉnh sửa: Bạn cũng có thể sử dụng tham số

>>> output_directory = 
>>> filename = wget.download[url, out=output_directory]
>>> filename
'razorback.mp3'
1 để sử dụng thư mục đầu ra tùy chỉnh thay vì thư mục làm việc hiện tại. You can also use the
>>> output_directory = 
>>> filename = wget.download[url, out=output_directory]
>>> filename
'razorback.mp3'
1 parameter to use a custom output directory instead of current working directory.

>>> output_directory = 
>>> filename = wget.download[url, out=output_directory]
>>> filename
'razorback.mp3'

Đã trả lời ngày 4 tháng 2 năm 2015 lúc 4:15Feb 4, 2015 at 4:15

Blairg23Blairg23Blairg23

10,6K6 Huy hiệu vàng71 Huy hiệu bạc70 Huy hiệu đồng6 gold badges71 silver badges70 bronze badges

11

Urllib.Request nên làm việc. Chỉ cần thiết lập nó trong một vòng lặp [không hoàn thành], kiểm tra xem localfile đã tồn tại, nếu nó gửi một tiêu đề có phạm vi, chỉ định bạn đã tải xuống địa phương. Hãy chắc chắn sử dụng Read [] để nối vào LocalFile cho đến khi xảy ra lỗi.

Đây cũng có khả năng là một bản sao tải xuống Python Urllib2 không hoạt động khi mạng kết nối lại

Đã trả lời ngày 22 tháng 6 năm 2014 lúc 0:45Jun 22, 2014 at 0:45

Eugene Keugene kEugene K

3.3312 Huy hiệu vàng22 Huy hiệu bạc36 Huy hiệu Đồng2 gold badges22 silver badges36 bronze badges

4

Tôi đã phải làm một cái gì đó như thế này trên một phiên bản Linux không có các tùy chọn phù hợp được biên dịch thành WGET. Ví dụ này là để tải xuống công cụ phân tích bộ nhớ 'Guppy'. Tôi không chắc nó có quan trọng hay không, nhưng tôi giữ tên tệp đích giống như tên mục tiêu URL ...

Đây là những gì tôi nghĩ ra:

python -c "import requests; r = requests.get['//pypi.python.org/packages/source/g/guppy/guppy-0.1.10.tar.gz'] ; open['guppy-0.1.10.tar.gz' , 'wb'].write[r.content]"

Đó là một lớp lót, đây là một chút dễ đọc hơn:

import requests
fname = 'guppy-0.1.10.tar.gz'
url = '//pypi.python.org/packages/source/g/guppy/' + fname
r = requests.get[url]
open[fname , 'wb'].write[r.content]

Điều này đã làm việc để tải xuống một tarball. Tôi đã có thể trích xuất gói và tải xuống sau khi tải xuống.

EDIT:

Để giải quyết một câu hỏi, đây là một triển khai với một thanh tiến trình được in cho stdout. Có lẽ có một cách di động hơn để làm điều này mà không cần gói

>>> output_directory = 
>>> filename = wget.download[url, out=output_directory]
>>> filename
'razorback.mp3'
2, nhưng điều này đã được thử nghiệm trên máy của tôi và hoạt động tốt:

#!/usr/bin/env python

from clint.textui import progress
import requests

fname = 'guppy-0.1.10.tar.gz'
url = '//pypi.python.org/packages/source/g/guppy/' + fname

r = requests.get[url, stream=True]
with open[fname, 'wb'] as f:
    total_length = int[r.headers.get['content-length']]
    for chunk in progress.bar[r.iter_content[chunk_size=1024], expected_size=[total_length/1024] + 1]: 
        if chunk:
            f.write[chunk]
            f.flush[]

Đã trả lời ngày 14 tháng 3 năm 2016 lúc 20:44Mar 14, 2016 at 20:44

0

Một giải pháp mà tôi thường thấy đơn giản hơn và mạnh mẽ hơn là chỉ cần thực hiện một lệnh đầu cuối trong Python. Trong trường hợp của bạn:

import os
url = '//www.someurl.com'
os.system[f"""wget -c --read-timeout=5 --tries=0 "{url}""""]

Đã trả lời ngày 16 tháng 1 năm 2019 lúc 14:00Jan 16, 2019 at 14:00

Yohan Obadiayohan ObadiaYohan Obadia

2.3921 Huy hiệu vàng22 Huy hiệu bạc31 Huy hiệu đồng1 gold badge22 silver badges31 bronze badges

4

import urllib2
import time

max_attempts = 80
attempts = 0
sleeptime = 10 #in seconds, no reason to continuously try if network is down

#while true: #Possibly Dangerous
while attempts < max_attempts:
    time.sleep[sleeptime]
    try:
        response = urllib2.urlopen["//example.com", timeout = 5]
        content = response.read[]
        f = open[ "local/index.html", 'w' ]
        f.write[ content ]
        f.close[]
        break
    except urllib2.URLError as e:
        attempts += 1
        print type[e]

Đã trả lời ngày 22 tháng 6 năm 2014 lúc 2:44Jun 22, 2014 at 2:44

PujanpujanPujan

3.0443 Huy hiệu vàng37 Huy hiệu bạc49 Huy hiệu đồng3 gold badges37 silver badges49 bronze badges

1

Đối với Windows và Python 3.x, hai xu của tôi đóng góp về việc đổi tên tệp khi tải xuống:Windows and Python 3.x, my two cents contribution about renaming the file on download :

  1. Cài đặt mô -đun WGET:
    >>> output_directory = 
    >>> filename = wget.download[url, out=output_directory]
    >>> filename
    'razorback.mp3'
    
    3
  2. Sử dụng wget:
import wget
wget.download['Url', 'C:\\PathToMyDownloadFolder\\NewFileName.extension']

Ví dụ về dòng lệnh làm việc thực sự:

python -c "import wget; wget.download[""//cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xz"", ""C:\\Users\\TestName.TestExtension""]"

Lưu ý: 'C: \\ PathTomyDownLoadFolder \\ newfilename.extension' không bắt buộc. Theo mặc định, tệp không được đổi tên và thư mục tải xuống là đường dẫn cục bộ của bạn.

Đã trả lời ngày 18 tháng 12 năm 2019 lúc 11:07Dec 18, 2019 at 11:07

1

Đây là mã được thông qua từ Thư viện Torchvision:

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
0

Nếu bạn ổn khi phụ thuộc vào thư viện Torchvision thì bạn cũng chỉ đơn giản là làm:

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
1

Đã trả lời ngày 2 tháng 4 năm 2020 lúc 23:51Apr 2, 2020 at 23:51

Shital Shahshital ShahShital Shah

58.7K13 Huy hiệu vàng224 Huy hiệu bạc180 Huy hiệu Đồng13 gold badges224 silver badges180 bronze badges

Hãy để tôi cải thiện một ví dụ với các chủ đề trong trường hợp bạn muốn tải xuống nhiều tệp.

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
2

Đã trả lời ngày 19 tháng 7 năm 2017 lúc 6:07Jul 19, 2017 at 6:07

EgaliciaegaliciaEgalicia

6348 Huy hiệu bạc16 Huy hiệu Đồng8 silver badges16 bronze badges

6

Dễ dàng như PY:

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
3

Đã trả lời ngày 10 tháng 8 năm 2017 lúc 5:27Aug 10, 2017 at 5:27

PD Shahpd Shahpd shah

1.2662 huy hiệu vàng12 Huy hiệu bạc24 Huy hiệu đồng2 gold badges12 silver badges24 bronze badges

1

Tensorflow làm cho cuộc sống dễ dàng hơn. Đường dẫn tập tin cung cấp cho chúng tôi vị trí của tập tin đã tải xuống.file path gives us the location of downloaded file.

>>> import wget
>>> url = '//www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download[url]
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
4

Đã trả lời ngày 25 tháng 10 năm 2019 lúc 4:56Oct 25, 2019 at 4:56

1

Làm cách nào để tải xuống một tập tin từ Python?

Để tải xuống một tệp 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. Nhận [] để tải xuống dữ liệu đằng sau url đó ..
Viết tệp vào 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 các tệp bằng WGET?

Tải xuống một tệp để tải xuống một tệp bằng WGET, nhập WGET theo sau là URL của tệp mà bạn muốn tải xuống.WGE sẽ tải xuống tệp trong URL đã cho và lưu nó trong thư mục hiện tại.type wget followed by the URL of the file that you wish to download. Wget will download the file in the given URL and save it in the current directory.

Làm cách nào để tải xuống một tập tin từ Python Terminal?

Một trong những cách đơn giản nhất để tải xuống các tệp trong Python là thông qua mô -đun WGET, điều này không yêu cầu bạn mở tệp đích.Phương thức tải xuống của mô -đun WGET tải xuống các tệp chỉ trong một dòng.Phương thức chấp nhận hai tham số: đường dẫn URL của tệp để tải xuống và đường dẫn cục bộ nơi lưu trữ tệp.via wget module, which doesn't require you to open the destination file. The download method of the wget module downloads files in just one line. The method accepts two parameters: the URL path of the file to download and local path where the file is to be stored.

Làm cách nào để tải xuống một thư mục trong Python?

Bước 1: Tạo a.Tệp NetRC để lưu trữ mật khẩu của bạn.....
Bước 2: Liệt kê tất cả các liên kết từ một thư mục web.Chúng tôi sẽ sử dụng các yêu cầu tải xuống dữ liệu và phân tích cú pháp HTML với Stringio và Etree.....
Bước 3: Phân loại liên kết thành các thư mục và tệp dữ liệu.....
Bước 4: Vòng lặp qua các thư mục con và tải xuống tất cả các tệp dữ liệu mới ..

Bài Viết Liên Quan

Chủ Đề