diff --git a/README.md b/README.md index 3d9c1c2a..3d389f21 100644 --- a/README.md +++ b/README.md @@ -2,203 +2,43 @@ Extract clean and worthy data from web. +输入:网站 +输出: +- 页面javascript资源评分排名 +- 网站域名whois记录查询 +- 网站组件识别 +- 网页历史快照 +- 网页广告/跟踪器识别 +- 网站响应头 +- 网站HTML文档 +- 网站资源引用链 + ## Getting started -一、功能需求 -1.WebHopper——网站测绘功能: -输入:网站 - -输出: - -页面javascript资源评分排名 -网站域名whois记录查询 -网站组件识别 -网页历史快照 -网页广告/跟踪器识别 -网站响应头 -网站HTML文档 -网站资源引用链 -二、部署环境 +一、部署环境 Mac OSX Serria/Catalina/BigSur(非M1芯片) Linux 16.04/18.04 -需要渲染页面,必须有图形界面,必须为桌面版本系统!!!!!!!!!!!!!!!!!!! +- 需要渲染页面,必须有图形界面,必须为桌面版本系统!!!!!!!!!!!!!!!!!!! +- python版本务必选择3.7、3.8,其他版本会遇到版本不兼容问题!!!!!!!!!!!!!!!!!! +- 需要的依赖在requirements.txt里,直接pip安装就行,简单的很!!!!!!!!!!!!!!!!!!!!! -python版本务必选择3.7、3.8,其他版本会遇到版本不兼容问题!!!!!!!!!!!!!!!!!! -需要的依赖在requirements.txt里,直接pip安装就行,简单的很!!!!!!!!!!!!!!!!!!!!! - -三、系统结构功能&操作说明 +二、系统结构功能&操作说明 0.系统目录结构 - 目录解释 1.analyzer文件夹:分析网站页面依赖的javascript资源 - 2.collector文件夹:收集网站数据 - 3.DBopt文件夹:数据库操作 - 4.Infra_analyzer文件夹:分析网站依赖的DNS、CA - 5.jsonfiles文件夹:保存网站的资源评分情况 - 6.result文件夹:保存测量结果,每天每个网站以网站域名+日期的形式存储在其中 - 7.Tools文件夹:各种小工具的保存位置 -py文件引用关系 - -蓝色代表第三方库的引用位置,标识了库功能,便于查询。红色部分比较重要。 - - - -系统工作流程:系统各功能实现顺序对最终结果无影响,详细顺序见WebHopper注释 - - -1.数据采集 -数据采集位于collector目录下,基于selenium+chrome浏览器实现网站数据采集,具体采集对象如下表,存储路径为当前目录result文件夹下 - -网页快照 网站首页截图 系统result目录下(上图www.baidu.com.png) -网站HTML文档 取网站首页HTML文档 系统result目录下(上图www.baidu.com.html) -网页渲染过程 取当前页面的渲染过程 计算机/User/../rendering_stream下 -网站响应头 当前网站响应头 系统result目录下(上图header) - - -2.页面javascript资源评分 -网站页面渲染过程用于计算javascript资源得分,计算得到的javascript得分以逆序输出,具体得分保存于result目录下csv文件中。 - -3.域名whois记录查询 -基于python-whois库,对网站主域名进行whois查询,结果保存于系统result目录下(上图whois文件) - -4.广告&跟踪器标识 -基于easylist规则列表,对网站中的广告和跟踪器资源进行标识,识别出来的结果会标识在result目录下的csv文件中。 - -功能实现位于Tools目录下的adt文件夹中。 - -5.组件识别 -基于wappalyzer指纹库,对网站进行组件识别,结果保存在result目录下,componet - -6.DNS、CA分析 -采集网站主域名依赖的权威域名服务器、OCSP服务器、CDP服务器、CA机构、CA URL - -功能实现位于Infra_analyzer目录下 - -结果保存于result目录下(上图www.baidu.com.csv) - -7.资源引用链 - -基于页面渲染过程数据,收集资源引用链,结果保存在result目录下chain.txt文件中 - -8. 操作说明 -将待测网站输入到WebHopper中,直接运行即可 - -四、数据说明 -1.result目录下结果文件 -csv文件 -resource_url 资源url -isThirdParty 资源是否来自第三方(0/1) -resource_type 资源类型(javascript:1、image:2、iframe:3、XML:4、CSS:5、video:6) -CA_url CA机构url -Issuer 证书签发者 -OCSP 资源域名依赖的OCSP服务器 -CDP 资源域名依赖的CDP服务器 -NS 资源二级域依赖的权威域名服务器 -isAd 是否为广告(取值0/1) -isTracker 是否为跟踪器(取值0/1) -whois(以www.baidu.com为例) -{ - "domain_name": [ - "BAIDU.COM", - "baidu.com" - ], - "registrar": "MarkMonitor, Inc.", - "whois_server": "whois.markmonitor.com", - "referral_url": null, - "updated_date": [ - "2022-01-25 09:00:46", - "2022-01-25 09:23:56" - ], - "creation_date": "1999-10-11 11:05:17", - "expiration_date": [ - "2026-10-11 11:05:17", - "2026-10-11 07:00:00" - ], - "name_servers": [ - "NS1.BAIDU.COM", - "NS2.BAIDU.COM", - "NS3.BAIDU.COM", - "NS4.BAIDU.COM", - "NS7.BAIDU.COM", - "ns4.baidu.com", - "ns3.baidu.com", - "ns2.baidu.com", - "ns7.baidu.com", - "ns1.baidu.com" - ], - "status": [ - "clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited", - "clientTransferProhibited https://icann.org/epp#clientTransferProhibited", - "clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited", - "serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited", - "serverTransferProhibited https://icann.org/epp#serverTransferProhibited", - "serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited", - "clientUpdateProhibited (https://www.icann.org/epp#clientUpdateProhibited)", - "clientTransferProhibited (https://www.icann.org/epp#clientTransferProhibited)", - "clientDeleteProhibited (https://www.icann.org/epp#clientDeleteProhibited)", - "serverUpdateProhibited (https://www.icann.org/epp#serverUpdateProhibited)", - "serverTransferProhibited (https://www.icann.org/epp#serverTransferProhibited)", - "serverDeleteProhibited (https://www.icann.org/epp#serverDeleteProhibited)" - ], - "emails": [ - "abusecomplaints@markmonitor.com", - "whoisrequest@markmonitor.com" - ], - "dnssec": "unsigned", - "name": null, - "org": "Beijing Baidu Netcom Science Technology Co., Ltd.", - "address": null, - "city": null, - "state": "Beijing", - "zipcode": null, - "country": "CN" -} - -header(以www.baidu.com为例) -{'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'close', 'Date': 'Sun, 29 May 2022 07:51:41 GMT', 'Content-Type': 'text/html', 'Last-Modified': 'Mon, 23 Jan 2017 13:27:29 GMT', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'Keep-Alive': 'max=1'} - - - -2. 页面渲染数据 - - -网站页面渲染数据存储于/User/账户名/rendering_stream目录下,数据为json文件,字段解释如下: - -node_id DOM节点id -actor_id 修改该节点的对象,取值为script_id -script_id 脚本id -node_type 节点类型(DOM、网络请求节点、脚本节点) -event_type -发生在该节点的事件类型 - -(NodeCreation、NodeInsertion、NodeAttribute、NodeRemoval、NodeAttachLater、AttrAddition、AttrStyleTextAddition、AttrModification、NetworkLinkRequest、NetworkScriptRequest、NetworkIframeRequest、NetworkXMLHTTPRequest、NetworkVideoRequest、NetworkRequest、NetworkImageRequest、ScriptCompilation、ScriptExecution) - -tag_name -标签名 - -(......) - -node_parent_id DOM父节点,取值为node_id -node_previous_sibling_id DOM同级兄弟节点,取值为node_id -node_attributes 节点属性 -parenet_node_type 父节点类型(DOM、网络请求节点、脚本节点) -requestor_id 发起请求的节点,取值为script_id -script_text 脚本内容 -in_execution 是否在执行脚本(True, False) -request_url 请求url -script_url 脚本url - +详细说明: +https://docs.mesalab.cn/pages/viewpage.action?pageId=47252440 ## Add your files