python 更新谷歌hosts

#coding:utf-8  
''''' 
下载google host
修改 系统hosts文件
'''
from requests.packages.urllib3 import request


__author__ = 'halfopen'  
  
from bs4 import BeautifulSoup
from PIL import Image
import urllib2  
import sys  
import ImageEnhance  
import urllib
import cookielib  
import re
import os
import platform
import httplib
import time


class GetGoogleHosts:
    system_type = u"unknown"
    url = u"http://laod.cn/hosts/2015-google-hosts.html"
    new_hosts_url = ""
    cj = cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    headers = {"User-agent": u"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}
    UserAgent  = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36'

    def __init__(self):
        # 设置 cookie
        self.system_type = platform.system()

    # 获取最新hosts
    def get_new_host(self):
        request  = urllib2.Request(self.new_hosts_url)
        request.add_header('Accept', "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp")
        request.add_header('Accept-Encoding', "*")
        request.add_header('User-Agent', self.UserAgent)
        html = urllib2.urlopen(request).read()
        # print html
        f = open("hosts", 'wb')
        f.write(html)
        f.close()

    # 获取最新hosts url
    def get_new_hosts_url(self):
        try:
            request = urllib2.Request(self.url)
            request.add_header('Accept', "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp")
            request.add_header('Accept-Encoding', "*")
            request.add_header('User-Agent', self.UserAgent)
            print u"------->[I]:download start"
            html = str(urllib2.urlopen(request).read())
            # print html
            # obj = re.match(r'http.*txt', "http://laod.cn/wp-content/uploads/2015/09/20150901-hosts.txt")
            obj = re.match(r'.*http://laod.cn/wp-content/uploads/.*-hosts.txt', html)
            if obj is not None:
                str1 = obj.group(0)
                self.new_hosts_url = str1[len(str1)-60:len(str1)]
                print u"------->[I]:get new_hosts_url\n\t"+self.new_hosts_url
            else:
                print u"------->[E]:new_hosts_url do not match"
                exit()
        except Exception, e:
            print e
            exit()
        finally:
            print u"------->[I]:download finished"

    # 替换hosts文件
    def update_hosts(self):
        print u"------->[I]:system platform\n\t"+platform.system()
        self.get_new_hosts_url()
        self.get_new_host()
        # filename = u"hosts.old."+str(time.time())
        if platform.system()== u"Windows":
            print u"------->[I]:move C:\Windows\System32\drivers\etc\hosts to C:\Windows\System32\drivers\etc\hosts.old"
            os.system(u'copy C:\Windows\System32\drivers\etc\hosts  C:\Windows\System32\drivers\etc\hosts.old')
            print u"------->[I]:copy hosts to C:\Windows\System32\drivers\etc\hosts.old "
            os.system(u'copy hosts C:\Windows\System32\drivers\etc\hosts.old')
        elif platform.system() == u"Linux":
            print u"------->[I]:move /etc/hosts to /etc/"
            os.system(u'cp /etc/hosts  /etc/hosts.old')
            print u"------->[I]:copy new host file to /etc/hosts "
            os.system(u'cp hosts /etc/hosts')
        else:
            pass



if __name__ == u'__main__':
    print u"------->"
    getGoogleHost = GetGoogleHosts()
    getGoogleHost.update_hosts()
    # getGoogleHost.update_hosts()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值