Update README.md
This commit is contained in:
196
README.md
196
README.md
@@ -2,203 +2,43 @@
|
|||||||
|
|
||||||
Extract clean and worthy data from web.
|
Extract clean and worthy data from web.
|
||||||
|
|
||||||
|
输入:网站
|
||||||
|
输出:
|
||||||
|
- 页面javascript资源评分排名
|
||||||
|
- 网站域名whois记录查询
|
||||||
|
- 网站组件识别
|
||||||
|
- 网页历史快照
|
||||||
|
- 网页广告/跟踪器识别
|
||||||
|
- 网站响应头
|
||||||
|
- 网站HTML文档
|
||||||
|
- 网站资源引用链
|
||||||
|
|
||||||
## Getting started
|
## Getting started
|
||||||
|
|
||||||
一、功能需求
|
一、部署环境
|
||||||
1.WebHopper——网站测绘功能:
|
|
||||||
输入:网站
|
|
||||||
|
|
||||||
输出:
|
|
||||||
|
|
||||||
页面javascript资源评分排名
|
|
||||||
网站域名whois记录查询
|
|
||||||
网站组件识别
|
|
||||||
网页历史快照
|
|
||||||
网页广告/跟踪器识别
|
|
||||||
网站响应头
|
|
||||||
网站HTML文档
|
|
||||||
网站资源引用链
|
|
||||||
二、部署环境
|
|
||||||
Mac OSX Serria/Catalina/BigSur(非M1芯片)
|
Mac OSX Serria/Catalina/BigSur(非M1芯片)
|
||||||
|
|
||||||
Linux 16.04/18.04
|
Linux 16.04/18.04
|
||||||
|
|
||||||
需要渲染页面,必须有图形界面,必须为桌面版本系统!!!!!!!!!!!!!!!!!!!
|
- 需要渲染页面,必须有图形界面,必须为桌面版本系统!!!!!!!!!!!!!!!!!!!
|
||||||
|
- python版本务必选择3.7、3.8,其他版本会遇到版本不兼容问题!!!!!!!!!!!!!!!!!!
|
||||||
|
- 需要的依赖在requirements.txt里,直接pip安装就行,简单的很!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
python版本务必选择3.7、3.8,其他版本会遇到版本不兼容问题!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
需要的依赖在requirements.txt里,直接pip安装就行,简单的很!!!!!!!!!!!!!!!!!!!!!
|
二、系统结构功能&操作说明
|
||||||
|
|
||||||
三、系统结构功能&操作说明
|
|
||||||
0.系统目录结构
|
0.系统目录结构
|
||||||
|
|
||||||
|
|
||||||
目录解释
|
目录解释
|
||||||
1.analyzer文件夹:分析网站页面依赖的javascript资源
|
1.analyzer文件夹:分析网站页面依赖的javascript资源
|
||||||
|
|
||||||
2.collector文件夹:收集网站数据
|
2.collector文件夹:收集网站数据
|
||||||
|
|
||||||
3.DBopt文件夹:数据库操作
|
3.DBopt文件夹:数据库操作
|
||||||
|
|
||||||
4.Infra_analyzer文件夹:分析网站依赖的DNS、CA
|
4.Infra_analyzer文件夹:分析网站依赖的DNS、CA
|
||||||
|
|
||||||
5.jsonfiles文件夹:保存网站的资源评分情况
|
5.jsonfiles文件夹:保存网站的资源评分情况
|
||||||
|
|
||||||
6.result文件夹:保存测量结果,每天每个网站以网站域名+日期的形式存储在其中
|
6.result文件夹:保存测量结果,每天每个网站以网站域名+日期的形式存储在其中
|
||||||
|
|
||||||
7.Tools文件夹:各种小工具的保存位置
|
7.Tools文件夹:各种小工具的保存位置
|
||||||
|
|
||||||
py文件引用关系
|
详细说明:
|
||||||
|
https://docs.mesalab.cn/pages/viewpage.action?pageId=47252440
|
||||||
蓝色代表第三方库的引用位置,标识了库功能,便于查询。红色部分比较重要。
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
系统工作流程:系统各功能实现顺序对最终结果无影响,详细顺序见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
|
|
||||||
标签名
|
|
||||||
|
|
||||||
(<img>、<scirpt>......)
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
## Add your files
|
## Add your files
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user