python解决github图片无法显示问题

说明

最近发现GitHub图片资源显示不了的问题,今日得闲解决一下,附上解决方案,授人以鱼不如授人以渔。

1. 问题

随便打开一个github网页发现是这样的,图片显示不了,项目说明里面图片都显示不了,影响我学习了!!

image-20210108154257712

浏览器F12打开看了一下,部分请求非正常

image-20210108154402561

初步估计是DNS解析的问题

2.解决问题

打开ipaddress.com,输入以上域名得到真实ip 199.232.96.133

image-20210108163901308

将域名和对应ip配置到系统hosts文件里面

image-20210108164055457

问题修复

3.代码

上面域名需要一个一个复制粘贴获取真实ip,比较繁琐,而且过一段时候后,ip说不定会失效,所以写一段python脚本批量获取ip地址(写得比较简单)。

import re

import requests


def get_ip(domain):
    d1 = domain.split(".")
    if len(d1) == 2:
        url = "https://%s.ipaddress.com" % domain
    elif len(d1) > 2:
        d2 = ".".join(d1[1:])
        url = "https://%s.ipaddress.com/%s" % (d2, domain)
    # print("url:" + url)
    r = requests.get(url)
    ip = None
    if r.status_code == 200:
        # print(r.text)
        result = re.findall(r"<li>(?:[0-9]{1,3}\.){3}[0-9]{1,3}</li>", r.text)
        if result:
            for r in result:
                ip = r.replace("<li>", "").replace("</li>", "")
                break
    if ip is not None:
        print("%s  %s" % (ip, domain))


def get_ips(domains):
    for domain in domains:
        get_ip(domain)


if __name__ == "__main__":
    # get_ip("baidu.com")
    # get_ip("aaa.baidu.com")
    github_domains = [
        "github.com",
        "gist.github.com",
        "assets-cdn.github.com",
        "raw.githubusercontent.com",
        "gist.githubusercontent.com",
        "cloud.githubusercontent.com",
        "camo.githubusercontent.com",
        "avatars0.githubusercontent.com",
        "avatars1.githubusercontent.com",
        "avatars2.githubusercontent.com",
        "avatars3.githubusercontent.com",
        "avatars4.githubusercontent.com",
        "avatars5.githubusercontent.com",
        "avatars6.githubusercontent.com",
        "avatars7.githubusercontent.com",
        "avatars8.githubusercontent.com"]
    get_ips(github_domains)

执行结果

image-20210108164347366

3.总结

问题完美解决!!

image-20210108164439450

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值