前言

作为程序员平时主要是使用 shadowsocks 作为代理工具的。shadowsocks 有个很明显的优点儿就是可以设置白名单和黑名单。白名单是会走shadowsocks的自动代理模式。

遇到的问题:

shadowsocks 代理是分白名单和黑名单的。当我访问某个网站,而恰好这个网站的域名和静态文件域名都在白名单里,访问这个网站的http请求就会自动走代理模式;

如果访问某个网站的域名没有在白名单里,就需要手动设置 全局代理模式 ;这有一个缺点就是电脑的所有的网络访问都会走代理,如果这个时候访问国内的网站,就会很慢或者是打不开。

最好的办法就是编辑shadowsocks.ShadowsocksX/gfwlist.js文件。将没办法走自动代理模式的域名添加到这个文件里面。但是一个网站的在显示完全,需要访问的域名不止一个,那么手动添加就会很麻烦。那么可不可以使用程序来实现呢?

需求分析:

  1. 将网站的所有请求访问的域名分类导出;

  2. 可以导出为.txt的文件,也可以直接打印在控制台;

怎么将所有的网络请求导出

1.打开chrome的开发者模式,并且将shadowsocks 设置为全局代理模式访问自动代理模式无法访问的网站;

2.在chrome的network面板,右键导出 har文件,保存到自己想要的位置;

如下图:

程序怎么运行:

按照提示运行程序:

运行效果展示:

代码分析:

因为 har 文件的内容就是一个json格式文件。所以就是读取文件的内容,并且将文件内容转化为json,将所有的请求的url分类写入一个数组,最后选择方式输出;

python主要代码如下:

with open(filePath, 'r') as readObj:harDirct = json.loads(readObj.read())requestList = harDirct['log']['entries']for item in requestList:urlString = (item['request']['url'])start = urlString.index('://')tempStr = urlString[start + 3:]end = tempStr.index('/')resultStr = tempStr[:end]# 判断是否是www开头的域名if 'www' in resultStr:resultStr = resultStr[4:]if resultStr not in hostList:hostList.append(resultStr)if str(outputType) is '1':with open(outputPath, 'w') as ff:for item in hostList:ff.write('"' + item + '",' + '\n')else:print '=============host start=============='for item in hostList:print '"' + item + '",'print '=============host end================'

Python 解析har 文件将域名分类导出相关推荐

  1. [系统安全] 四十一.APT系列(6)Python解析PE文件并获取时间戳判断来源区域

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  2. 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 完整代码示例 ) ★★★

    文章目录 一.完整代码示例 二.执行结果 三.博客资源 一.完整代码示例 使用 Python 解析 ELF 文件完整代码示例 : # coding=utf-8 # 解析 elf 文件需要导入的依赖库 ...

  3. Python解析json文件

    Python解析json文件 实现代码 import json import sysstdout = sys.stdoutwith open("company.json", &qu ...

  4. python解析xml文件最好选用的模块_用Python解析XML文件

    本文翻译自:https://developer.yahoo.com/python/python-xml.html 使用Python解析XML文件 许多YDN APIs提供了JSON格式的数据输出,JS ...

  5. python解析dat文件生成xlsx文件

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 python解析dat文件生成xlsx文件 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 ...

  6. 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编框架 | PyCharm 中导入 Capstone 反汇编框架 )

    文章目录 一.Capstone 反汇编框架 二.PyCharm 中导入 Capstone 反汇编框架 一.Capstone 反汇编框架 Android 的 APK 安装文件中 , 可能存在若干 so ...

  7. python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...

    XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...

  8. python解析log文件_python解析基于xml格式的日志文件

    大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本. 首先,同样的先看看日志是个啥样. 都是xml格式的,是不是看着就头晕了??没事,我 ...

  9. python 解析xml 文件: SAX方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

最新文章

  1. 关于ARM Cortex系列产品
  2. (转载)Unity中解析ini配置文件----INIParser
  3. 计算机审计中级培训结业考试,第二期计算机审计中级培训班结业考.doc
  4. Linux 自动化运维工具 ansible
  5. python input函数无法输入字符串_python input输入函数
  6. 鼠标和按键在android 上的识别和区别
  7. 2D阵列中的峰值检测
  8. 如何做好IT人的职业规划
  9. c++ 使用nacos_使用SpringBoot和Seata实现Dubbo分布式事务管理
  10. Blender 投影切割-删除重叠的平面
  11. 基于W5500的嵌入式SNMP代理端实现
  12. 微博评论数据——requests——保存在本地
  13. Node.js 学习之数据库与身份认证
  14. 歌德巴赫猜想。任何一个偶数都可以分解为两个素数之和。(其实这是个C二级考试的模拟试题)...
  15. 记一次SPA项目打包优化的过程
  16. Java Web中Forward和redirect的区别
  17. Vue.js(渐进式JavaScript框架)
  18. wxPython+PyOpenGL打造三维数据分析的利器!| CSDN博文精选
  19. 百万格子的标签认领可以提高你在alexa的排名的格子
  20. 2018-2019-2 网络对抗技术 20165231 Exp3 免杀原理与实践

热门文章

  1. c#实现文件重命名操作
  2. ubuntu 如何在终端下切换到指定的文件夹或盘根目录
  3. linux ssh加固
  4. 数字孪生的概念是什么【深度】
  5. MSN登陆不了的解决方案
  6. 这一轮AI会带来什么样的范式转移?
  7. 最新传奇木马及其防范全攻略
  8. 2022山东大学软件学院软件项目管理期末考试(回忆版)
  9. 2150: 部落战争
  10. 手把手教你学财报01