URLFinder
URLFinder copied to clipboard
作者你好,URLFinder很棒,我使用了一段时间,使用过程中发现了一些重要问题,希望作者可以看到
使用过程中发现了以下几个问题
-
关于"base 标签"的判断:在HTML代码中“base标签” 并不一定以标签的形式(
<base href="xxx"/>
)出现,有一些时候 “base标签” 会以变量赋值的形式出现在HTML代码中,例如:(base: "../script/";baseUrl: './';BASEURL="/baseProj/";basePath = "../../";
)。我在crawler.go和run.go中添加了一段代码,用来判断以变量赋值的形式存在的 “base标签” 。 - 请求头的Referer选项:许多页面的请求头中若没有Referer选项会得不到正确的响应结果或者直接访问不了该页面,我在请求头的设置中添加了Referer选项。
- filter.go中的QueryUnescape函数:这个函数在某些情况会出现错误;例如 str, _ = url.QueryUnescape("%s%s:%s/ABC/") 这样一行代码,将出现错误,str是一个空字符串,这将导致许多url访问失败。我添加了小段代码,做出了简单的判断。
- 浏览器渲染:仅获取了页面的源代码,然后进行深度探测,这样获取的数据有限。在作者代码的基础上,做了如下修改: (1)使用go_rod库进行浏览器渲染获取页面加载过程中所有事件的响应体(包括页面源代码) (2)保存所有响应事件的响应体和响应头(除.jpg、.svg等格式的文件)
可以使用这几个地址进行测试(”http://118.122.93.12:89/“,”https://185.152.180.207/“,”http://13.80.255.118:8082/“,”http://84.19.75.216/“) 以上是我使用过程中发现的几个重要问题,希望会对这个项目有帮助,并期待你的回复。
感谢师傅的提交,都是有效的建议。 但代码还存在一些问题无法直接合并,等我空闲后 会合并分支修改后发布新版本。 •͈˽ •͈