加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

自动配置Google Hosts脚本

发布时间:2020-12-17 17:19:00 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/usr/bin/env python# encoding=utf8from HTMLParser import HTMLParserimport osimport requestsimport shutil__author__ = 'sofn'urlpath = "http

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

#!/usr/bin/env python
# encoding=utf8
from HTMLParser import HTMLParser
import os
import requests
import shutil

__author__ = 'sofn'

urlpath = "http://www.360kb.com/kb/2_150.html"
hostsBack = "/etc/hosts_back"
hosts = "/etc/hosts"


class MyHTMLParser(HTMLParser):
    def __init__(self):
        HTMLParser.__init__(self)
        self.hosts = []
        self.got = False
        self.start = False
        self.onehost = {}
        self.first = False

    def handle_startendtag(self,tag,attrs):
        if tag == "br" and len(attrs) == 0:
            self.got = True
            self.first = True

    def handle_data(self,data):
        data = data.strip()
        if self.got and self.start and data:
            if self.first:
                self.onehost["ip"] = data
                self.first = False
            else:
                self.onehost["host"] = data
                self.hosts.append(self.onehost)
                self.onehost = {}

        if not self.start and data.startswith("#google hosts"):
            self.start = True
        if self.start and data == "#google hosts 2015 end":
            self.start = False


if __name__ == "__main__":
    text = requests.get(urlpath).text
    hp = MyHTMLParser()
    hp.feed(text)
    hp.close()
    datas = hp.hosts

    if not os.path.exists(hostsBack):
        print("backup hosts")
        shutil.copy(hosts,hostsBack)
    else:
        if os.path.exists(hosts):
            os.remove(hosts)
        hostsFile = open(hosts,"a")
        with open(hostsBack) as f:
            print("write base")
            hostsFile.write(f.read())
            hostsFile.close()

    hostsFile = open(hosts,"a")
    for one in datas:
        ip = one.get("ip")
        host = one.get("host")
        if ip and host and len(ip.split(".")) == 4:
            print("append " + str(ip) + "  " + str(host))
            hostsFile.write(ip + "  " + host + "n")
    hostsFile.close()

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读