Bài đăng

Hiển thị các bài đăng có nhãn python

Colab trong Colab

Hình ảnh
Tổng quan Ở bài viết hôm trước, chúng ta đã tạo ra một trình duyệt web mini để chạy colab. Tuy là tạo và chạy được nhưng bây giờ chạy nó ở đâu ? Với một số ae dư giả sẽ chạy nó trên vps windows hoặc chạy ngay trên máy tính của mình, nhưng đối với tui, tui cho nó chạy trên colab luôn ^.^ Đó cũng nguyên nhân sinh ra bài viết này. Như ae đã biết mỗi khi chạy một dự án trên google colab thì sẽ được cung cấp một máy ảo chạy môi trường dòng lệnh gnu/linux. Nhưng với trình duyệt web của chúng ta muốn nó chạy phải cung cấp môi trường đồ họa. Mà đồ họa thì cần màn hình, mà màn hình đâu ra ^v^. Tất nhiên là màn hình thật không có thì ta dùng màn hình ảo chứ sao nữa. Tạo màn hình ảo. Để tạo được màn hình ảo, chúng ta sẽ cần đến anh bạn Xvfb. Xvfb (X virtual framebuffer) là một máy chủ X (X server) có thể chạy trên các máy mà không có màn hình. Nó mô phỏng một bộ đệm khung hình (framebuffer) sử dụng bộ nhớ ảo. Còn X server là một hệ thống cửa sổ hiển thị bitmap, nó cung cấp một khung cơ bản...

Tự tạo 1 chiếc trình duyệt web mini

Hình ảnh
Giới thiệu Hôm nay chúng ta sẽ cùng tạo 1 con trình duyệt web cơ bản. Em nó được viết bằng python dựa trên nền Qt5 và QtWebEngine. Mà QtWebEngine thì dựa trên nền Chromium nên nó hơi hao hao giống chrome :) Mục đích tạo ra nó là để học hỏi và làm một vài thứ hay ho khác, các bài viết sau sẽ rõ :). Link code mini web browser Đây là hình ảnh của em nó. Lập trình Nguyên liệu: Python3 PyQt5 PyQtWebEngine Text Editor hoặc IDE tùy ý nhá. Cài đặt. Python3 dễ cài quá mà. Với Qt thì dùng lệnh pip. Cụ thể: pip install PyQt5 PyQtWebEngine Code Code của em nó sẽ ở cuối bài hoặc đâu đó trong bài viết này :). Code cửa sổ chính Sau đây là code phần cửa sổ chính. class MainWindow(QMainWindow): """docstring for MainWindow""" def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.tabs = QTabWidget(tabsClosable=True, movable=True) self.tabs.setTabShape(0) self.resize(800, 600)...

Kết hợp Fiddler và Python bắt HTTP(S)

Hình ảnh
Kết hợp Fiddler và Python bắt HTTP(S) 1. Cấu hình Fiddler. Đầu tiên chúng ta cấu hình Fiddler nhận dữ liệu HTTP(S) từ các tiến trình (process). Sau đó trích xuất CA certificate ra Desktop. Chúng ta nhận được cửa sổ thông báo xuất tập tin FiddlerRoot.cer thành công. Tại Desktop chúng ta sẽ thấy tập tin FiddlerRoot.cer Hiện tại tập tin này đang lưu trữ dữ liệu ở dạng DER . Chúng ta sẽ chuyển nó về định dạng PEM , vì thư viện requests của python yêu cầu như vậy. Chi tiết về các định dạng trên các bạn có thể xem tại đây Nháy đúp chuột vào tập tin FiddlerRoot.cer . Nó sẽ hiện ra cửa sổ sau. Chọn thẻ Details . Rồi click nút Copy to File... Chọn Next . Chọn tiếp Base-64 encoded X.509 (.CER) . Rồi Next . Sau đó đặt cho tập tin mới. Rồi Next -> Finish . Xong Để chỉnh cổng (port) lắng nghe của proxy server vào Tools > Options... > Connections . Chỉ định cổng kết nối tại Fiddler listens on port: . 2. Cấu hình Python. Chúng ta sẽ tìm kiếm và biên tập tập tin c...

Các trang web xem phim đã sử dụng google drive như thế nào ?

Hình ảnh
Các trang web xem phim đã sử dụng google drive như thế nào ? Trước khi đọc bài viết này, các bạn nên đọc bài viết Làm thế nào mà trang web có thể phát video trước để có kiến thức cơ bản, giúp hiểu hơn bài viết này. Phụ lục Giao thức HLS là gì ? Khám phá. Họ đã sử dụng google drive để lưu phim ra sao ? Làm sao tải được HLS ? 1. Giao thức HLS là gì ? HTTP Live streaming (HLS) là một giao thức truyền dẫn (transport protocol) nội dung media, nó dựa trên HTTP. Được phát triển bởi Apple . Tập tin manifest của HLS là playlist có định dạng M3U8 (Phiên bản hỗ trợ Unicode của M3U dùng mã UTF-8). Đặc tả kĩ thuật của HLS các bạn có thể tìm hiểu tại đây HLS hoạt động như thế nào ? Sau đây là mô hình hoạt động đơn giản của HLS. Giải thích Từ nguồn đầu vào (Media source) như là tập tin MP4, MKV, máy quay phim, điện thoại, ... Chúng được đưa đến máy chủ (server) để lưu trữ, xử lý. Tại máy chủ, chúng được mã hóa (encode) thành chuẩn MPEG-2 TS, thường dùng các phần mềm như ffm...