我希望确定在打开html文件时使用的DNS请求(使用Python)。具体来说,我希望看到哪些域资源将被加载,是否在Web浏览器中打开了该页面。我实际上并不想发出DNS请求,或者加载外部资源,只是确定它们会是什么(或者更具体地说,它们来自哪里)。
(我有一堆[数百万] html文件,我想确定每个人尝试从哪个域加载外部资源)。
我认为必须有一个Python包可以帮助解决这个问题,但似乎无法找到它 - 寻找正确方向的一个点,而不是完全开发的代码。
答案 0 :(得分:1)
很抱歉,但是,很少见,Python将是您实现目标所需的最后一件事。这是因为使用Python,您既不能解释HTML,也不能解释您所依赖的Web请求的方式,也不能将Python作为连接到您计算机上的DNS查找的最佳工具。
我建议使用可编写脚本的无头浏览器(如PhantomJS
)来请求归档中的所有HTML页面(最好通过本地Web服务器)。无头服务器不仅会读取HTML源代码(作为python requests.get
左右会这样做),还会解释嵌入式JavaScript并加载远程link
s(如CSS样式表),图像等。这将产生您想要了解的DNS查找。
然后你应该安装一个本地"间谍"您可以控制的DNS服务器,以查找查找的DNS条目。可以找到一个很棒的教程,如何在linux下设置这样的服务器here。是的,还有Python的空间,因为你需要分析和压缩你的"间谍"的日志文件。 DNS服务器。