Để tải xuống tệp từ URL bằng Python, hãy sử dụng phương thức requests.get[]
. Ví dụ: hãy tải xuống biểu tượng của Instagram
import requests URL = "//instagram.com/favicon.ico" response = requests.get[URL] open["instagram.ico", "wb"].write[response.content]
Đây là một ví dụ cho người đang tìm kiếm câu trả lời nhanh. Nhưng nếu các dòng mã trên không hoạt động hoặc không có ý nghĩa, vui lòng tiếp tục đọc
Các bước chi tiết hơn
Để tải xuống 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. 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[]
Đây là một ví dụ
Hãy tải xuống biểu tượng của Instagram bằng Python. Có thể tìm thấy biểu tượng đằng sau URL này https. // mạng xã hội. com/favicon. ico
Đầu tiên, cài đặt mô-đun yêu cầu bằng cách mở cửa sổ dòng lệnh và chạy
pip install requests
Sau đó, bạn có thể sử dụng nó để tải xuống biểu tượng đằng sau URL
# 1. Import the requests library import requests URL = "//instagram.com/favicon.ico" # 2. download the data behind the URL response = requests.get[URL] # 3. Open the response into a new file called instagram.ico open["instagram.ico", "wb"].write[response.content]
Kết quả của việc chạy đoạn mã này, bạn sẽ thấy biểu tượng Instagram xuất hiện trong cùng thư mục chứa tệp chương trình của bạn
Các cách khác để tải xuống tệp trong Python
Có các mô-đun khác giúp tải xuống các tệp có thể trong Python
Ngoài thư viện requests
, hai thư viện thường được sử dụng là
wget
pip install requests
0
Cách tải xuống tệp bằng mô-đun wget
Trước khi bạn có thể tải xuống tệp bằng cách sử dụng
pip install requests3, bạn cần cài đặt mô-đun. Mở cửa sổ dòng lệnh và chạy
May mắn cho các chuyên gia khoa học dữ liệu, có nhiều cách để có được dữ liệu hữu ích – thông qua cơ chế thu thập dữ liệu nội bộ của công ty, bằng cách tận dụng API hoặc chỉ bằng cách tải xuống tệp có liên quan từ web
Trong hướng dẫn này, chúng tôi sẽ thảo luận về một trong những phương pháp này – chúng tôi sẽ chỉ cho bạn cách tải xuống các tệp từ web theo cách lập trình với sự trợ giúp của thư viện 'yêu cầu' Python
Nhưng hãy bắt đầu bằng đôi lời về gói 'yêu cầu'
Gói 'yêu cầu' của Python là gì?
Đây là một triển khai thân thiện với người dùng của khái niệm trừu tượng yêu cầu HTTP. Điều đó có nghĩa là bạn với tư cách là người dùng, không cần biết chính xác cách thức hoạt động của các yêu cầu HTTP. Thay vào đó, bạn có thể sử dụng giao diện đơn giản của mô-đun 'yêu cầu'. Đây là một trong những gói Python phổ biến nhất cho mục đích này
Bây giờ chúng tôi đã thông báo cho bạn về gói 'yêu cầu' của Python, hãy tiếp tục và xem xét một cách tiếp cận khá ngây thơ để tải xuống các tệp
Nếu bạn nghĩ về nó một chút, bạn có thể nhận ra rằng việc kết nối với một trang web trên web thực tế giống như việc tải xuống nội dung của nó
Theo logic tương tự, nếu có một tệp mà chúng tôi muốn tải xuống, chúng tôi có thể thực hiện yêu cầu GET đối với tệp đó, nhận phản hồi và sau đó xuất phản hồi đó thành tệp cục bộ trên máy của chúng tôi… Thực tế là tải xuống tệp
Với mục đích của ví dụ này, chúng tôi có thể sử dụng hình ảnh Wikipedia này làm tệp mà chúng tôi muốn lấy
Vì vậy, đây là các bước để tải xuống tệp bằng gói 'yêu cầu' của Python
Điều đầu tiên chúng ta cần làm là nhập 'yêu cầu'.
Sau đó, để đơn giản, hãy lưu URL của tệp trong một biến
Bước tiếp theo là yêu cầu tệp này từ máy chủ
Đây là nơi gói 'yêu cầu' của Python phát huy tác dụng - chúng tôi gửi yêu cầu GET bằng cách sử dụng gói đó. phương thức nhận []. Vâng, thật dễ dàng
Tại thời điểm này, chúng tôi thực sự đã tải xuống dữ liệu, vì vậy chúng tôi chỉ cần ghi dữ liệu đó vào một tệp cục bộ
Tin tốt là việc xử lý các tệp trong Python không khó lắm
Chúng tôi mở hoặc tạo tệp bằng chức năng 'mở' tiêu chuẩn. Nó trả về tệp dưới dạng đối tượng Python. Bằng cách này, chúng tôi lưu trữ nó trong một biến.
Hàm này nhận 2 tham số chính
Cái đầu tiên là tên của tệp chúng tôi muốn mở hoặc tạo cùng với loại của nó
Cái thứ hai thú vị hơn. Nó chỉ định chế độ mà chúng tôi mở tệp. Có một số tùy chọn trong bộ phận này. Ví dụ, những cái phổ biến nhất là
- 'r'. Mở tệp ở chế độ chỉ đọc;
- 'rb'. Mở tệp dưới dạng chỉ đọc ở định dạng nhị phân;
- 'w'. Tạo một tệp ở chế độ chỉ ghi. Nếu tệp đã tồn tại, nó sẽ ghi đè lên tệp đó;
- 'wb'. Chế độ chỉ ghi ở định dạng nhị phân;
- 'một'. Mở tệp để nối thêm thông tin mới vào cuối;
- 'w+'. Mở tệp để ghi và đọc;
Bây giờ bạn đã hiểu dòng đầu tiên làm gì – nó tạo một tệp JPG để ghi ở dạng nhị phân
Tiếp theo, để ghi vào tệp, chúng ta chỉ cần truyền nội dung phản hồi cho phương thức ghi
Cuối cùng, chúng ta nên đóng tệp ở cuối
Điều này rất quan trọng để thực hiện đúng các chương trình và lưu tệp
Điều này hiện đã xuất nội dung đã tải xuống của hình ảnh Wiki sang một tệp cục bộ
Còn một thủ thuật cuối cùng về việc xử lý các tập tin
Để đảm bảo rằng tệp luôn được đóng, bất kể chúng ta làm gì với nó, chúng ta có thể sử dụng câu lệnh 'with' như hình bên dưới. Nó tự động gọi phương thức đóng ở cuối.
Vì vậy, vấn đề với phương pháp tải xuống tệp này là gì?
Chà, những người tinh mắt hơn có thể nhận thấy rằng trước tiên chúng tôi đã nhận được toàn bộ tệp thông qua yêu cầu GET và sau đó chúng tôi đã xem xét toàn bộ để ghi nó vào đĩa cứng
Vấn đề chính với điều này là tệp đầu tiên được lưu trữ hoàn toàn trong RAM trước khi được chuyển vào Ổ cứng. RAM thường không được thiết kế cho mục đích này và điều này thực sự có thể làm chậm quá trình đối với các tệp lớn hơn và có khả năng bị tràn và sập
May mắn thay, gói 'yêu cầu' của Python cung cấp giải pháp cho tình trạng khó xử này
Để minh họa điểm này, chúng ta có thể thử tải xuống tệp video mẫu được cung cấp bởi tệp-ví dụ. trang web com. Đây là mã.
Như bạn thấy, trong yêu cầu GET, chúng ta nên đặt tham số luồng thành 'True'. Điều này cho chương trình biết rằng tệp sẽ được tải xuống thành nhiều phần nhỏ hơn thay vì trong một lần
Sau đó, chúng tôi mở tệp bằng câu lệnh 'with' mà chúng tôi vừa nói về. Tuy nhiên, lần này, chúng ta không thể chỉ viết toàn bộ phản hồi vào tệp, chúng ta cần thực hiện theo từng phần
Đó là lý do tại sao chúng ta có 'vòng lặp for'
Một điều cần lưu ý ở đây là tham số ‘chunk size’. Điều này biểu thị mức độ lớn của một đoạn nên được đọc tại một thời điểm, điều này có thể làm tăng hoặc giảm tốc độ tải xuống. Kích thước tối ưu phụ thuộc vào hệ thống và tốc độ internet của bạn, vì vậy bạn có thể cần thử nghiệm một chút với nó
Phương pháp tải xuống tệp này nhanh hơn nhiều vì nó sử dụng RAM để chỉ lưu trữ một đoạn tại một thời điểmMột lưu ý cuối cùng là khi đặt tham số luồng, kết nối đến máy chủ web có thể cần phải đóng. Vì vậy, chúng tôi sẽ sử dụng một 'với' khác cho yêu cầu. Mã cuối cùng trông như thế này.
Vì vậy, đây là một cách để có được dữ liệu hữu ích. Tuy nhiên, sau đó, bạn vẫn cần phân tích nó. Điều đó nói rằng, nếu bạn muốn củng cố bộ kỹ năng phân tích của mình, hãy xem chương trình Khoa học dữ liệu hoàn chỉnh của chúng tôi. Nó được thiết kế để giúp bạn phát triển tất cả các năng lực theo yêu cầu cho công việc của nhà khoa học dữ liệu hoặc nhà phân tích dữ liệu. Nếu bạn vẫn không chắc chắn muốn biến sở thích của mình về khoa học dữ liệu thành một nghề nghiệp toàn diện, thì chúng tôi cũng cung cấp bản xem trước miễn phí của Chương trình khoa học dữ liệu. Bạn sẽ nhận được miễn phí 12 giờ nội dung từ cơ bản đến nâng cao. Đó là một cách tuyệt vời để xem liệu chương trình có phù hợp với bạn hay không