前言OnionScan0.2已经发布!本文将带你了解它的一大特色——自定义爬虫别说了,上车吧!OnionScan打包了各种类型的暗网服务识别方法,例如比特币地址、pgp密钥和电子邮件地址。然而,由于许多服务以非标准化格式发布数据,因此使用工具来自动化该过程变得更加困难。OnionScan通过为每个网站指定一种自定义关系的方式解决了这个问题,然后将这些关系导入到它们关联的引擎中以便更好地使用。例子作为例子,我们先来看看汉莎商城。写爬虫的时候,我们想获取他卖的商品名称,属于什么商品分类,卖家是谁?查阅资料得知,所有这些信息都可以从/listing商品页面获取。在此之前,我们必须构建一个自定义网络爬虫来提取这些信息,对其进行处理,并将其放入表格中以便我们进行分析。在OnionScan0.2中我们只需要简单的定义配置文件即可。{"onion":"hansamkt2rr6nfg3.onion","base":"/","exclude":["/forums","/support","/login","/register","?showFilters=true""/img","/inc","/css","/link","/dashboard","/feedback","/terms","/message"],"关系":[{"名称":"Listing","triggeridentifierregex":"/listing/([0-9]*)/","extrarelationships":[{"name":"Title","type":"listing-title","regex":"
(.*)
"},{"name":"Vendor","type":"username","re??gex":"
"},{"name":"Price","type":"price","re??gex":"(USD[^<]*)"},{"name":"Category","type":"category","re??gex":"([^<]*)","rollup":true}]}]}下面是一步一步的解释:前两行指定了暗网服务器,这里我们的目标是"onion":"hansamkt2rr6nfg3.onion"对于基本URL,我们希望从根目录("base":"/")开始扫描。一些暗网服务器只有子目录中的数据可用,例如/listings。在这种情况下,我们可以使用base参数告诉OnionScan跳过网站的其他部分接下来,exclude告诉OnionScan排除某些链接像“/forums”、“/support”、“/login”、“/register”,因为这些中的内容链接不能导致我们的肾上腺激素分泌。***是关系参数,这也是我们爬虫的关键部分。关系由一个name参数和一个triggeridentifierregex参数定义,正则表达式应用于URL网站,并在规则匹配后触发关系。在t在他的示例中,我们告诉OnionScan只要URL匹配“/listing/([0-9]*)/”就触发列表关系。同时OnionScan也会把URL中的数字(([0-9]*))作为关系的唯一标识。其次,每个关系信息都可以有一个extrarelationships参数。OnionScan会寻找这些信息,并为之前提取的信息分配一个唯一的标识符。例如,在我们的配置文件中,我们定义了4个额外的关联:Title、Vendor、Price和Category。每个附加关联都有一个名称和类型参数,以及OnionScan将在其关联引擎中使用的正则表达式regex。此正则表达式用于从之前触发条件的网页中提取信息。以汉莎商城为例,通过查找超链接结构,我们可以从/listing/产品销售页面获取产品供应商名称。通过寻找类似的超链接结构,我们还可以获得标题、价格和产品目录列表。Category下的rollup参数是OnionScan用来统计数据的指令。后面我们就可以使用这个命令来绘制图表进行研究了。这时,我们应该告诉OnionScan如何从Hansa商城读取一个销售列表,然后看看OnionScan的性能。将以上配置文件放入名为service-configs的文件夹中,然后使用以下命令调用OnionScan扫描商城:1./onionscan-scansweb--depth1--crawlconfigdir./service-configs/--webport8080--verbosehansamkt2rr6nfg3.onionOnionScan运行一段时间后,您可以在浏览器中打开localhost:8080,然后在搜索框中输入hansamkt2rr6nfg3.onion。向下滚动列表,***您应该能够获得以下信息:后记如您所见,OnionScan可以通过简单的配置做很多事情。我们之前定义的爬虫关联现在是可搜索的,也可以与OnionScan找到的其他信息相关联。由于我们设置了OnionScan的rollup参数,所以生成了Category的图表。希望大家在实现强大功能的同时,能够维护和分享不同类型的配置信息给我们。这仅仅是个开始!我们还有很多想法要在OnionScan上实现,请在Github上找到我们。