Semalt: Quét web bằng Python

Bạn đã từng trải qua một trong những khoảnh khắc kinh hoàng khi bạn không có Wi-Fi. Nếu vậy, thì bạn đã nhận ra bao nhiêu những gì bạn làm trên máy tính của bạn dựa trên mạng. Từ thói quen tuyệt đối, bạn sẽ thấy mình kiểm tra email, xem ảnh trên Instagram của bạn bè cũng như đọc các tweet của họ.
Vì rất nhiều công việc máy tính liên quan đến các quy trình web, sẽ rất thuận tiện nếu các chương trình của bạn cũng có thể trực tuyến. Đây là trường hợp để cạo web . Nó liên quan đến việc sử dụng một chương trình để tải xuống và xử lý nội dung từ web. Chẳng hạn, Google sử dụng nhiều chương trình nạo để lập chỉ mục các trang web cho công cụ tìm kiếm của họ.

Có nhiều cách để bạn có thể cạo dữ liệu từ internet. Nhiều phương thức trong số này yêu cầu lệnh của nhiều ngôn ngữ lập trình như Python và R. Chẳng hạn, với Python, bạn có thể sử dụng một số mô-đun như Yêu cầu, súp đẹp, Webbrowser và Selenium.
Mô-đun 'Yêu cầu' cho phép bạn có cơ hội tải xuống các tệp dễ dàng từ web mà không phải lo lắng về các vấn đề khó khăn như sự cố kết nối, lỗi mạng và nén dữ liệu. Nó không nhất thiết phải đi kèm với Python và vì vậy bạn sẽ phải cài đặt nó trước.
Mô-đun được phát triển vì mô-đun 'urllib2' của Python có nhiều biến chứng gây khó khăn khi sử dụng. Nó thực sự khá dễ dàng để cài đặt. Tất cả bạn phải làm là chạy các yêu cầu cài đặt pip từ dòng lệnh. Sau đó, bạn cần thực hiện một thử nghiệm đơn giản để đảm bảo rằng mô-đun đã được cài đặt chính xác. Để làm như vậy, bạn có thể nhập '>>> yêu cầu nhập' vào vỏ tương tác. Nếu không có thông báo lỗi hiển thị, thì cài đặt đã thành công.
Để tải xuống một trang, bạn cần khởi tạo hàm 'request.get ()'. Hàm lấy một chuỗi URL để tải xuống và sau đó trả về một đối tượng 'phản hồi'. Điều này chứa phản hồi mà máy chủ web trả về cho yêu cầu của bạn. Nếu yêu cầu của bạn thành công, thì trang web đã tải xuống được lưu dưới dạng một chuỗi trong biến văn bản của đối tượng phản hồi.
Đối tượng phản hồi thường có thuộc tính mã trạng thái mà bạn có thể sử dụng để tìm hiểu xem quá trình tải xuống của bạn có thành công hay không. Tương tự, bạn có thể gọi phương thức 'grow_for_status ()' trên một đối tượng phản hồi. Điều này đặt ra một ngoại lệ nếu có bất kỳ lỗi nào khi tải xuống tệp. Đó là một cách tuyệt vời để đảm bảo rằng một chương trình dừng lại trong trường hợp tải xuống xấu.

Từ đây, bạn có thể lưu tệp web đã tải xuống trên ổ cứng bằng các hàm tiêu chuẩn, 'open ()' và 'write ()'. Tuy nhiên, để giữ lại mã hóa Unicode của văn bản, bạn sẽ phải thay thế dữ liệu văn bản bằng dữ liệu nhị phân.
Để ghi dữ liệu vào một tệp, bạn có thể sử dụng vòng lặp 'for' với phương thức 'iter_content ()'. Phương thức này trả về các khối dữ liệu trên mỗi lần lặp thông qua vòng lặp. Mỗi số lượng lớn được tính bằng byte và bạn phải chỉ định mỗi khối sẽ chứa bao nhiêu byte. Khi bạn đã viết xong, hãy gọi 'close ()' để đóng tệp và công việc của bạn đã kết thúc.