блокировщик веб-сайта скрипта Python не работает, даже если скрипт компилируется правильно - PullRequest
0 голосов
/ 25 ноября 2018

Код прекрасно компилируется и выполняется как положено.Но когда я захожу на один из сайтов в списке сайтов, которые я создал для сайтов, которые должны быть заблокированы, я все равно могу перейти на этот сайт.Я все еще могу зайти на www.facebook.com, хотя это один из пяти веб-сайтов, которые мой скрипт на python должен блокировать

import time
from datetime import datetime as dt

host_temp="hosts.txt"
host_path=r"C:\Windows\System32\drivers\etc\hosts"
redirect="127.0.0.1"


website_list= ["https://www.facebook.com/","www.facebook.com","facebook.com","dub119.mail.live. 
   com","www.dub119.mail.live.com"]

while True:
if  dt(dt.now().year,dt.now().month,dt.now().day,0)<dt.now()< dt(dt.now().year,dt.now().month,dt.now().day,23):
    print("Working hours...")
    with open(host_path,'r+') as file:
        content=file.read()
        # print(content)
        for website in website_list:
            if website in content:
                pass
            else:
                file.write(redirect+"   "+website+"\n")

else:
    with open(host_path,'r+') as file:
        content=file.readlines()
        file.seek(0)
        for line in content:
            if not any(website in line for website in website_list):
                file.write(line)
        file.truncate()

    print("Fun hours..")

time.sleep(4)

И я запускаю этот код от имени администратора, поэтому я знаю, что это непроблема: введите описание изображения здесь

" введите описание изображения здесь

1 Ответ

0 голосов
/ 25 ноября 2018

file.write(redirect+" "+website+"\r\n")

Необходимо использовать окончания строки Windows.Кроме того, обратите внимание, что файл hosts должен содержать записи DNS, поэтому facebook.com и www.facebook.com имеют смысл, а URL-адреса типа https://.. - нет.

...