Làm cách nào để tải xuống hình ảnh từ URL trong Python?
Bạn đã bao giờ muốn tải xuống tất cả hình ảnh trên một trang web nhất định chưa? Để bắt đầu, chúng tôi cần khá nhiều phụ thuộc, hãy cài đặt chúng
Mở một tệp Python mới và nhập các mô-đun cần thiết
Trước tiên, hãy tạo một trình xác thực URL để đảm bảo rằng URL được chuyển là hợp lệ, vì có một số trang web đặt dữ liệu được mã hóa vào vị trí của URL, vì vậy chúng ta cần bỏ qua những trang web đó.
hàm urlparse() phân tích một URL thành sáu thành phần, chúng ta chỉ cần xem liệu netloc (tên miền) và lược đồ (giao thức) có ở đó không Thứ hai, tôi sẽ viết chức năng cốt lõi lấy tất cả các URL hình ảnh của một trang web
Nội dung HTML của trang web nằm trong đối tượng 1, để trích xuất tất cả các thẻ img trong HTML, chúng ta cần sử dụng phương thức 2, hãy cùng xem nó hoạt động như thế nào
Điều này sẽ truy xuất tất cả các phần tử img dưới dạng danh sách Python Mặc dù vậy, tôi đã bọc nó trong một đối tượng tqdm chỉ để in thanh tiến trình. Để lấy URL của thẻ img, có thuộc tính src. Tuy nhiên, có một số thẻ không chứa thuộc tính src, chúng ta bỏ qua chúng bằng cách sử dụng câu lệnh continue ở trên Bây giờ chúng tôi cần đảm bảo rằng URL là tuyệt đối
Có một số URL chứa các cặp khóa-giá trị HTTP GET mà chúng tôi không thích (kết thúc bằng một cái gì đó như thế này "/image. png?c=3. 2. 5"), hãy loại bỏ chúng ________số 8Chúng tôi đang nhận được vị trí của '?' Bây giờ, hãy đảm bảo rằng mọi URL đều hợp lệ và trả về tất cả các URL hình ảnh
Bây giờ chúng ta có một chức năng lấy tất cả các URL hình ảnh, chúng ta cần một chức năng để tải xuống các tệp từ web bằng Python, tôi đã mang chức năng sau từ hướng dẫn này 0Chức năng trên về cơ bản lấy url của tệp để tải xuống và tên đường dẫn của thư mục để lưu tệp đó vào Có liên quan. Cách chuyển đổi bảng HTML thành tệp CSV bằng Python Cuối cùng, đây là chức năng chính 1Lấy tất cả các URL hình ảnh từ trang đó và tải xuống từng cái một. Hãy kiểm tra điều này 0Điều này sẽ tải xuống tất cả các hình ảnh từ URL đó và lưu trữ chúng trong thư mục "hình ảnh yandex" sẽ được tạo tự động Tuy nhiên, xin lưu ý rằng có một số trang web tải dữ liệu của họ bằng Javascript, trong trường hợp đó, bạn nên sử dụng thư viện request_html để thay thế, tôi đã tạo một tập lệnh khác thực hiện một số chỉnh sửa cho tập lệnh gốc và xử lý kết xuất Javascript, hãy kiểm tra xem Được rồi, chúng tôi đã hoàn tất. Dưới đây là một số ý tưởng bạn có thể triển khai để mở rộng mã của mình Bạn muốn tìm hiểu thêm về Web Scraping?Cuối cùng, nếu bạn muốn tìm hiểu sâu hơn về web scraping với các thư viện Python khác nhau, không chỉ BeautifulSoup, các khóa học dưới đây chắc chắn sẽ có giá trị cho bạn |