zoukankan      html  css  js  c++  java
  • github访问太慢解决方案

    问题描述

    打开github网页太慢

    问题原因

    被墙,导致DNS无法访问,实际上通过配置本地域名到IP的映射可以避免查询DNS服务器,从而加快速度。

    为了验证确实是DNS的问题,请前往站长之家DNS查询,可以看见很多DNS服务器都没有。

    一般Github的访问有两部分:主站的访问和二级域名的资源加载(比如样式文件等)
    一般Github加载缓慢,主要是 assets-cdn.github.com、avatars0.githubusercontent.com 以及 avatars1.githubusercontent.com 三个域名的解析问题。(国内很多地方解析不了)

    为了提高速度,可以使用HOSTS加速对Github的域名解析。

    解决方法

    windows C:WindowsSystem32driversetchosts
    linux /private/etc/hosts
    修改hosts主机映射文件:
    添加github一系列网址的IP地址、域名映射
    原理就是:当我们访问github时,那些域名什么的就不需要去DNS服务器上询问了,直接从本地HOST文件中获得。

    但是github域名所对应IP好像是随时间变化的,挨个查询太麻烦,来个脚本
    先建立一个域名列表haha.txt,下面列表中的gist.github.com是代码片功能,被墙得死死地。无论如何打不开。

    github.com
    assets-cdn.github.com
    avatars0.githubusercontent.com
    avatars1.githubusercontent.com
    documentcloud.github.com
    gist.github.com
    help.github.com
    nodeload.github.com
    raw.github.com
    status.github.com
    training.github.com
    github.io
    

    然后用python语言使用requests+beautifulsoup制作一个小爬虫

    import requests
    from bs4 import BeautifulSoup
    
    for i in open("haha.txt"):
        url = "http://ip.chinaz.com/" + i.strip()
        resp = requests.get(url)
        soup=BeautifulSoup(resp.text)
        x=soup.find(class_="IcpMain02")
        x=x.find_all("span",class_="Whwtdhalf")
        print(x[5].string.strip(),i.strip())
    

    最终得到所要结果

    192.30.253.113 github.com
    151.101.100.133 assets-cdn.github.com
    151.101.100.133 avatars0.githubusercontent.com
    151.101.100.133 avatars1.githubusercontent.com
    151.101.100.133 documentcloud.github.com
    8.7.198.45 gist.github.com
    151.101.100.133 help.github.com
    192.30.253.121 nodeload.github.com
    151.101.100.133 raw.github.com
    174.129.214.132 status.github.com
    151.101.100.133 training.github.com
    23.235.33.133 github.io
    

    关闭浏览器,重新打开,就能体验到飞一般的感觉 !

    为了简单,可以通过Python直接更改HOSTS文件,不用手动更改。

    s = """
    github.com
    assets-cdn.github.com
    avatars0.githubusercontent.com
    avatars1.githubusercontent.com
    documentcloud.github.com 
    help.github.com
    nodeload.github.com
    raw.github.com
    status.github.com
    training.github.com
    github.io
    """
    import requests
    from bs4 import BeautifulSoup
    
    ans = []
    for i in s.split():
        url = "http://ip.chinaz.com/" + i.strip()
        resp = requests.get(url)
        soup = BeautifulSoup(resp.text)
        x = soup.find(class_="IcpMain02")
        x = x.find_all("span", class_="Whwtdhalf")
        x = "%s %s" % (x[5].string.strip(), i.strip())
        print(x)
        ans.append(x)
    
    hosts = r"C:WindowsSystem32driversetchosts"
    with open(hosts, "r") as f:
        content = [i for i in f.readlines() if i.startswith("#")]
        content.extend(ans)
    with open(hosts, "w") as f:
        f.write("
    ".join(content))
    
    
  • 相关阅读:
    django restful framework 有哪些功能(10条)
    Restful 规范
    eclipse编辑环境下导入springmvc的源码
    java.lang.NoSuchMethodException: .<init>()
    spring项目出现无法加载主类
    元素 "context:component-scan" 的前缀 "context" 未绑定。
    BeanPostProcessor出现init方法无法被调用Invocation of init method failed
    spring学习笔记
    springmvc学习笔记
    打印圈1圈2
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/6376420.html
Copyright © 2011-2022 走看看