Trình chặn trang web bằng dự án python pdf
Tìm hiểu cách tạo trình chặn trang web tự động chặn trang web cho chúng tôi và giúp chúng tôi làm việc hiệu quả hơn Show Patrick Loeber · · · · · Ngày 01 tháng 1 năm 2021 · 3 phút đọc con trănTrong Hướng dẫn Python này, chúng tôi tạo một trình chặn trang web tự động chặn trang web cho chúng tôi và giúp chúng tôi làm việc hiệu quả hơn. Điều này có thể hữu ích nếu bạn có mục tiêu trong năm mới là sử dụng ít mạng xã hội hơn Mã này cũng có sẵn trên GitHub Kịch bản¶Đây là mã. Sửa đổi
Làm thế nào nó hoạt động?¶Cách tiếp cận rất đơn giản. Chúng tôi chỉ sửa đổi tệp máy chủ và xác định ánh xạ từ tên miền bị chặn sang 127 của chúng tôi. 0. 0. 1 địa chỉ IP. Bằng cách này, tất cả các yêu cầu đối với miền được chuyển hướng đến máy chủ cục bộ của chúng tôi. Thông thường không có máy chủ nào chạy trên localhost nên chúng ta sẽ thấy thông báo "Site can't bereach". Trước khi sử dụng mã này và sửa đổi tệp, bạn có thể muốn tạo một bản sao lưu tệp máy chủ của mình Blog này sẽ thảo luận về việc phát triển Trình chặn trang web bằng Python. Blog này sẽ dạy bạn về những điều sau đây
Các thao tác trên tệp bằng cách lập trình một ứng dụng là xử lý tệp. Trong Python, chúng ta có thể mở một tệp bằng hàm open() được tích hợp trong Python Hãy thảo luận về ý chính trước. Có một tệp có tên là “hosts” trong Windows nói chung tại System32/drivers. File này sẽ giúp chúng ta chặn truy cập một trang web từ máy tính. Chúng tôi cần thêm “ Tuy nhiên vì đây là file hệ thống quan trọng nên bạn không thể chỉnh sửa nó một cách đơn giản được. Bạn sẽ cần đặc quyền quản trị để chỉnh sửa nó. Vì vậy, để khắc phục vấn đề này, bạn có hai giải pháp. Chạy Python IDLE với tư cách quản trị viên và chạy tệp Python. Hoặc, bạn có thể chạy Dấu nhắc Lệnh với tư cách quản trị viên và chạy tệp python bằng lệnh. “ Chức năng Trình chặn trang web trong Python
Đầu tiên chúng ta sẽ mở file hosts để đọc và ghi nội dung trong đó. Chúng tôi sẽ duyệt qua danh sách các trang web cần chặn và kiểm tra xem từng trang web có tồn tại trong tệp không. Nếu có, thì chúng tôi sẽ hiển thị rằng nó đã bị chặn và nếu không, chúng tôi sẽ thêm trang web vào tệp theo cú pháp. “
hàm all_websites()
Ở đây ta sẽ hỏi lưu trữ bao nhiêu website thì lặp bấy nhiêu lần. Mỗi lần chúng tôi sẽ yêu cầu một trang web mới và nối nó vào danh sách website_list đã được xác định trước đó. Cuối cùng, chúng tôi sẽ trả lại nó. Bạn có thể thắc mắc “-> list” có nghĩa là gì ở dòng đầu tiên. Điều này thể hiện rằng kiểu trả về của hàm cụ thể đó sẽ là một danh sách. Trong trường hợp của chúng tôi, kiểu trả về của biến website_list cũng là một danh sách. Bạn có biết chúng ta có thể kiểm tra loại biến bằng cú pháp. “in (loại (tên_biến))” Chức năng bỏ chặn trang web trong Python
Tại đây, chúng ta sẽ mở file host và lưu trữ website muốn bỏ chặn trong my_websites bằng cách gọi hàm all_websites(). Sau đó, chúng tôi sẽ lần lượt duyệt qua tất cả các trang web mong muốn và kiểm tra xem chúng có tồn tại trong tệp máy chủ hay không và nếu có, chúng tôi sẽ thay thế tên miền của trang web bằng một chuỗi rỗng của “” trong một biến new_content. Sau đó, vì phương thức ghi sẽ chỉ nối thêm nội dung mong muốn vào tệp, nên trước tiên chúng ta cần xóa dữ liệu hiện tại của tệp. Chúng ta có thể làm điều này bằng phương pháp truncate Sau khi xóa dữ liệu ban đầu của tệp máy chủ, chúng tôi sẽ thêm new_content vào tệp máy chủ bằng phương thức write(). Nếu trang web mong muốn chưa bị chặn hoặc không tồn tại trong tệp máy chủ, thì chương trình sẽ cảnh báo họ về điều đó Hoàn thành mã để tạo Trình chặn trang web bằng Pythondef all_websites() -> list: a = int(input("how many websites? ")) website_list = [] for i in range(a): website_list.append(str(input("Enter the website URL: "))) return website_list def blocker(): ip = "127.0.0.1" with open(r"C:\Windows\System32\drivers\etc\hosts", "r+") as host: content = host.read() for i in all_websites(): if i in content: print(i + " is already blocked") pass else: what_to_write = "\n" + ip + " " + i + "\n" host.write(what_to_write) def unblocker(): with open(r"C:\Windows\System32\drivers\etc\hosts", "r+") as host: content = host.read() my_websites = all_websites() for i in range(len(my_websites)): if my_websites[i] in content: new_content = content.replace(my_websites[i], "") host.truncate(0) host.write(new_content) else: print(i + " has not been blocked") if __name__ == "__main__": menu_driven = int(input("1. Block a website, 2. Unblock a Website: ")) if menu_driven == 1: blocker() elif menu_driven == 2: unblocker() else: print("Enter either 1 or 2") Kiểm tra kịch bảnTrước tiên, hãy xem có gì trong tệp máy chủ của chúng tôi ngay bây giờ. Chúng tôi có thể thấy có nội dung bản quyền, nhưng vì chúng được nhận xét nên chúng không bắt buộc, vì vậy chúng tôi không phải lo lắng về nội dung ban đầu Tôi sẽ sử dụng trang web python. org trong blog này làm ví dụ. Hãy chạy chương trình của chúng ta trước Chúng tôi muốn chặn nó lúc đầu. Nhưng trước đó, hãy xem nó có hoạt động trên trình duyệt không Vì nó đang hoạt động, hãy chặn nó ngay bây giờ Chương trình hiện đã chặn trang web. Kiểm tra file host trên trình duyệt Nó đã được thêm vào tệp máy chủ. Nhưng, hãy xem nó có hoạt động trong trình duyệt không Bạn có thể thấy rằng trang web hiện đã bị chặn Bây giờ, hãy bỏ chặn nó. Vì vậy, hãy chạy lại tập lệnh python Chương trình hiện đã bỏ chặn trang web. Hãy kiểm tra tệp máy chủ Nó hiện đã bị xóa khỏi tệp máy chủ. Nhưng, nó có hoạt động trong trình duyệt không, hãy kiểm tra Bạn có thể thấy rằng nó hiện cũng hoạt động trong trình duyệt Xin chúc mừng, bạn đã tạo thành công Trình chặn trang web bằng Python cho phép bạn chặn và bỏ chặn một trang web trên Windows. Bạn có thể làm cho tập lệnh này tốt hơn nữa bằng cách tạo Giao diện người dùng đồ họa từ tập lệnh này bằng Tkinter |