3

我正在用php构建一个小型抄袭检测系统以供练习。好吧,我对谷歌做了一些研究,发现我可以使用谷歌 API(自定义搜索 API)来构建一个抄袭检测软件。

好吧,我发现这个问题非常有帮助 [你将如何编写一个反剽窃网站?]

我已经设法使用以下代码从 google api 获取搜索结果

<?php
ini_set('max_execution_time',300);
require_once '../../src/Google_Client.php';
require_once '../../src/contrib/Google_CustomsearchService.php';
session_start();

$client = new Google_Client();
$client->setApplicationName('Google CustomSearch PHP Starter Application');
$client->setDeveloperKey('MY_DEVELOPER_KEY');
$search = new Google_CustomsearchService($client);

$to_search="This is the text that should be searched in google so that the result that     I obtain can be used by my codes to perform plagarism analysis";

$result = $search->cse->listCse($to_search, array('cx' => 'MY_SEARCH_ENGINE_ID'));
 for($i=0; $i<6; $i++)
 {

   print "<pre>" . print_r($result, true) . "</pre>";

 }
?> 

从 $result 变量我有从谷歌搜索获得的 [link]、[snippet] 和 [html snipped]。使用下面的代码

   $result['items'][$i]['snippet'];
$result['items'][$i]['link'];

这里 $i 是从循环获得的整数值。

问题是 如您所知,我只能发送短关键字或几行用于在 google 中搜索,但不能发送大文本,所以我应该将大块文本分成小行,然后运行多个查询吗?还是我应该做点别的?可以分析我将获得的片段和链接值是否存在抄袭。这样做会导致大量查询超出每天一百个查询的限制。

请建议我做我应该做的事情的正确方法。我向谷歌查询的方式,然后用用户输入分析大量文本是否存在抄袭,这是正确的方式吗?

4

1 回答 1

1

我会这样做的方式是谷歌页面标题寻找完全匹配。如果有人窃取了您的内容,他们很有可能使用了相同的标题。

然后,您可以从这里拉出可能被盗内容的页面并进行比较。

一种更复杂的方法是在您自己的内容中搜索统计上不太可能出现的单词和短语。现代使用率低于平均水平的单词。然后谷歌搜索包含所有最不可能单词的内容。然而,这将比第一种方法困难得多,因为您需要在 Google 中建立一个包含低搜索结果词和过度使用词的大型数据库。

第三种技术是在您的内容中搜索拼写错误的单词。然后让你的脚本谷歌拼写错误并寻找匹配项。

第四个——这只是预防性的,最适合阻止自动抓取工具是让你的系统发明一个虚构的词——一串字母和数字,根本不可能有任何搜索结果。然后让脚本监视新的搜索结果。

以上的组合可能会制作一个非常出色的脚本和一顶帽子,我会敦促你作为开源发布。

祝你的项目好运。

于 2013-03-29T13:24:42.907 回答