Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

作者你好,URLFinder很棒,我使用了一段时间,使用过程中发现了一些重要问题,希望作者可以看到 #93

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

Liiu04
Copy link

@Liiu04 Liiu04 commented Oct 21, 2023

使用过程中发现了以下几个问题

  1. 关于"base 标签"的判断:在HTML代码中“base标签” 并不一定以标签的形式(<base href="xxx"/>)出现,有一些时候 “base标签” 会以变量赋值的形式出现在HTML代码中,例如:(base: "../script/";baseUrl: './';BASEURL="/baseProj/";basePath = "../../";)。我在crawler.go和run.go中添加了一段代码,用来判断以变量赋值的形式存在的 “base标签” 。
  2. 请求头的Referer选项:许多页面的请求头中若没有Referer选项会得不到正确的响应结果或者直接访问不了该页面,我在请求头的设置中添加了Referer选项。
  3. filter.go中的QueryUnescape函数:这个函数在某些情况会出现错误;例如 str, _ = url.QueryUnescape("%s%s:%s/ABC/") 这样一行代码,将出现错误,str是一个空字符串,这将导致许多url访问失败。我添加了小段代码,做出了简单的判断。
  4. 浏览器渲染:仅获取了页面的源代码,然后进行深度探测,这样获取的数据有限。在作者代码的基础上,做了如下修改:
    (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/“)
以上是我使用过程中发现的几个重要问题,希望会对这个项目有帮助,并期待你的回复。

Liiu04 and others added 14 commits October 21, 2023 14:19
“base标签” 并不一定以标签的形式(<base href="xxx"/>)出现在HTML代码之中,有一些时候 “base标签” 会以变量赋值的形式出现在HTML代码中,例如:(base: "../script/";baseUrl: './';BASEURL="/baseProj/";basePath = "../../";)。
我添加了一段代码,用来判断以变量赋值的形式存在的 “base标签” 。
作者对于“base标签”的判断,仅是判断HTML代码中是否存在base标签。
但是,“base标签” 并不一定以标签的形式(<base href="xxx"/>)出现在HTML代码之中,有一些时候 “base标签” 会以变量赋值的形式出现在HTML代码中,例如:(base: "../script/";baseUrl: './';BASEURL="/baseProj/";basePath = "../../";)。
我添加了一段代码,用来判断以变量赋值的形式存在的 “base标签” 。
在 jsFind 和 urlFind 两个函数中添加了一段代码,用来将 ”base 标签“ 和 url 合并在一起。
作者仅是使用requests库获取页面的源代码,然后进行深度探测,这样获取的数据有限。
我在作者代码的基础上,做了如下修改:
(1)使用 go_rod 库来动态的获取页面加载过程中所有事件的响应体(包括页面源代码)
(2)保存所有响应事件的响应体和响应头(除.jpg、.svg等格式的文件)
(3)去除了 探测非本ip下url 的功能,因为非本ip下url的数据冗余,绝大多数数据与本ip无关。若需要此功能,可以在AppendJs和AppendUrl下的代码中删除小段代码(我已注释)。
作者只是利用requests库获取页面的源代码,然后进行深度探测,这样获取的数据有限。
我在作者代码的基础上,做了如下修改: (1)使用go_rod库来动态的获取页面加载过程中所有事件的响应体(包括页面源代码) (2)保存所有响应事件的响应体和响应头(除.jpg、.svg等格式的文件) (3)去除了探测非ip下url的功能,因为非本ip下url的数据冗长冗余,且大部分数据与本ip无关。若需要此功能,可以在AppendJs和AppendUrl下的代码中删除小段代码(我已添加注释)。
作者使用requests库,仅获取了页面的源代码,然后进行深度探测,这样获取的数据有限。
我在作者代码的基础上,做了如下修改: (1)使用go_rod库来动态的获取页面加载过程中所有事件的响应体(包括页面源代码)(2)保存所有响应事件的响应体和响应头(除.jpg、.svg等格式的文件) (3)去除_探测非ip下url_的功能,因为非本ip下url的数据大部分与本ip无关。若需要此功能,可以在AppendJs和AppendUrl下的代码中删除小段代码(我已注释)。
在作者代码基础上,(1)增加了请求头的选项(2)增加了存储响应头和响应体的功能
在type Link struct中添加了ResponseHeaders和ResponseBody两个字段
作者对于“base标签”的判断,仅是判断HTML代码中是否存在base标签。
但是,“base标签” 并不一定以标签的形式(<base href="xxx"/>)出现在HTML代码之中,有一些时候 “base标签” 会以变量赋值的形式出现在HTML代码中,例如:(base: "../script/";baseUrl: './';BASEURL="/baseProj/";basePath = "../../";)。
我添加了一段代码,用来判断以变量赋值的形式存在的 “base标签” 。
此外,许多页面的请求头中若没有Referer选项会得不到正确的响应结果或者直接访问不了该页面,我在请求头的设置中添加了Referer选项。
作者使用requests库,仅获取了页面的源代码,然后进行深度探测,这样获取的数据有限。
我在作者代码的基础上,做了如下修改: 
(1)使用go_rod库进行无界面渲染获取页面加载过程中所有事件的响应体(包括页面源代码)
(2)保存所有响应事件的响应体和响应头(除.jpg、.svg等格式的文件)
url.QueryUnescape()这个函数的使用在某些时候会出现错误;
例如 str, _ = url.QueryUnescape("%s%s:%s/ABC/") 这样一行代码,输出结果会是空字符串,将导致许多url访问失败。
我添加了小段代码,做出了简单的判断。
url.QueryUnescape()这个函数的使用在某些时候会出现错误;
例如 str, _ = url.QueryUnescape("%s%s:%s/ABC/") 这样一行代码,将出现错误,str是一个空字符串,这将导致许多url访问失败。
我添加了小段代码,做出了简单的判断。
作者使用requests库,仅获取了页面的源代码,然后进行深度探测,这样获取的数据有限。
我在作者代码的基础上,做了如下修改: 
(1)使用go_rod库进行无界面渲染获取页面加载过程中所有事件的响应体(包括页面源代码)
(2)保存所有响应事件的响应体和响应头(除.jpg、.svg等格式的文件)
作者使用requests库,仅获取了页面的源代码,然后进行深度探测,这样获取的数据有限。
我在作者代码的基础上,做了如下修改: 
(1)使用go_rod库进行浏览器渲染获取页面加载过程中所有事件的响应体(包括页面源代码)
(2)保存所有响应事件的响应体和响应头(除.jpg、.svg等格式的文件)
@pingc0y
Copy link
Owner

pingc0y commented Oct 26, 2023

感谢师傅的提交,都是有效的建议。
但代码还存在一些问题无法直接合并,等我空闲后 会合并分支修改后发布新版本。
•͈˽ •͈

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants