跳到内容
[广告]欧美亚马逊SSN账号、炮灰号开售 ×

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像


ceacer

推荐帖

欢迎来到Ceacer 网安,今天带来的是一个搜索引擎和并带有网络爬虫介绍

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像,然后使用关键字进行搜索。

主要用 OOP 风格的 PHP 编写,旨在更好地理解 OOP 以及网络爬虫的工作原理。

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第1张

演示网站:https://www.70m.top

下载地址:https://zip.cenet.top/v3/doogle-main.zip

特征

  • 搜索网站

    • 显示标题、URL 和描述

  • 搜索图片

    • 将鼠标悬停在图像上可预览说明(alt 标签)

    • 搜索图像的砖石布局

    • 使用 Fancybox 预览图像

    • 图片搜索页面动态响应

  • 干净的主页

  • 过滤损坏的图像结果

  • 按点击/访问整理搜索结果

  • 搜索页面底部的分页系统

  • 显示搜索词的“找到的结果”

  • 支持非拉丁字符 (UTF-8)

设置和使用

Docker 配置文件可在doogle-docker获取。

假设您已经安装并配置了Docker v3.9(或更高版本)。

git clone https://github.com/safesploit/doogle-docker.git
cd doogle-docker
sh build.sh

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第2张

现在可以通过localhost:8000访问 Doogle 。

为了调试, phpMyAdmin 也包含在localhost:8001上。

抓取网站以填充图像和站点表

基于表单的抓取

在浏览器中转到文件所在的位置http://localhost/crawl.php

将 URL 粘贴到输入字段中,然后按“抓取”按钮。

手动抓取

在crawl-manual.php的底部,变量$startUrl是粘贴要抓取的网站URL的位置:

$startUrl = "https://thehackernews.com/";

然后在浏览器中转到文件所在的位置http://localhost/crawl-manual.php

解释

抓取过程需要一些时间,这完全取决于被抓取网站的大小。该页面将继续加载(没有输出),直到crawl.php脚本完成。

检查表imagessites数据库以确保它们已被填充。

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第3张

一旦表格填充完毕,请访问 Doogle 主页并进行搜索!查看预览图像。

编程逻辑

分页系统逻辑

在search.php内部,实现了分页

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第4张

在上面的示例中,currentPage=11。显示的页数始终为 10。

每页结果

站点搜索将每页返回 20 个结果,图像搜索将每页返回 30 个结果。

每页的结果可以分别在 search.php 中的第 {83, 88} 行进行更改。如 $pageSize 变量所示:

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第5张

处理边缘情况

当没有更多页面可用时,可能会出现边缘情况。

因此,对于 331 个结果,将有17 个页面可用。然而,如果不考虑边缘情况,分页系统的 UI 将允许滚动浏览不存在的页面;这将返回一个空结果。

为了处理边缘情况,在 while 循环中实现以下逻辑:

if($currentPage + $pagesLeft > $numPages + 1)
    $currentPage = $numPages + 1 - $pagesLeft;

while($pagesLeft != 0 && $currentPage <= $numPages) 
{ ... }

图片搜索

图片说明

为了使图像搜索提供更多信息,“alt”标签是搜索词的一部分。如./classes/ImageResultsProvider.php第34行所示

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第6张

使用 JavaScript 加载图像

在“图像”表中,有一行“已损坏”,用于跟踪返回错误的图像。

由于图像已经通过纯服务器端解决方案加载,因此必须利用 AJAX 动态加载图像。显示在 ./assets/js/script.js 中

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第7张

石工

图像搜索使用Masonry-Cascading 网格布局库

Masonry 允许图像采用网格布局,该布局由于 jQuery 而具有响应性。下图显示了布局示例:

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第8张

网站搜索 - 修剪结果

如预览图像所示,Doogle 在执行站点搜索时将为每个结果返回(标题、URL 和描述)。

然而,为了使某些结果更易于阅读,需要执行修剪过程。在 ./classes/SiteResultsProvider.php 中调用函数 trimField() :

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第9张

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第10张

标题被削减为 55 个字符,描述被削减为 230 个字符。

遥测

数据库中的“images”和“sites”表都有一行,每一列都包含“clicks”。

每次访问网站或预览图像时,“点击次数”字段都会增加。

执行搜索时,返回的结果按点击次数的降序排列。此行为由 ./classes/SiteResultsProvider.php 函数 getResultsHtml() 内的 $query 显示。参见第 43 行。

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第11张

用户代理

爬行期间使用的用户代理数据位于 ./classes/DomDocumentParser.php 内部。如第 9 行所示:

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第12张

预览图像

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第13张

Doogle 搜索 - 站点

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第14张

Doogle 搜索 - 图片

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第15张

图像预览

图像预览是使用 Fancybox 完成的。

标题、图像 URL 和站点 URL 位于左下角。

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第16张

 

分页系统

当然,某些搜索词可能会返回许多结果,例如“bbc”。

Doogle每页仅显示20 个站点。在页面底部,我们可以查看接下来的 10 页。

结果显示

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第17张

页面底部

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第18张

第 13 页底部

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第19张

doogleBot 抓取表单

用于提交 URL 进行爬行的 HTML 表单

Doogle 是一个搜索引擎和网络爬虫,可以搜索索引的网站和图像  搜索引擎 网络爬虫 Doogle搜索 网站搜索 图像搜索 精准搜索 搜索体验 检索结果 网页索引 数据查询 第20张

评论链接
在其他网站上分享

创建账户或登录以发表评论

您需要成为会员才能发表评论

创建一个帐户

在我们的社区注册一个新账户。很简单!

注册新账户

登入

已有账户?在此登录

立即登录
  • 告诉你朋友

    喜欢 西塞网络科技?告诉朋友!
×
×
  • 创建新的...

重要信息

我们在您的设备上放置了 cookies,以帮助改善本网站。您可以调整您的 cookie 设置,否则我们会假定您可以继续

版权所有 © 2018-2025 西塞网络科技
粤公网安备44200002444913号