微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何防止依赖于XPath的抓取工具获取页面内容

参见英文答案 > How do I prevent site scraping? [closed]26个
There一个PHP库,让evreybody能够攻击我(类似于cURL).然后我有一个想法来阻止它,我想为我的元素使用动态类名.看这个:
<div class="<?PHP $ClassName ?>">anything</div> // $className is taken from the database

Note: $ClassName will vary evry time.

在这种情况下,任何人都不知道我的类名是什么来选择我的元素然后复制我的数据.现在我有两个问题:

>如何在$ClassName和.$ClassName(在css文件中)之间进行通信?换句话说,我如何使用PHP变量的css类名? (动态css类)
>它是否优化从数据库获取所有类名?

在可以在本地完成之前,使用数据库获取名称并不是最佳选择.你应该定义一个包含所有类名的数组,然后通过array_rand选择一个,有些东西是这样的:
// PHP code
   <?PHP
     $classes = array('class1','class2','class3','class4'); 
     $class_name = $classes[array_rand($classes)];
   ?>


// html code
     <div class="<? PHP echo $class_name; ?>">anything</div>


// css code
   <style>
     .<? PHP echo $class_name; ?> {
      // your css codes
     }
   </style>

注意:你必须知道你不能在.css文件中使用PHP代码,那么你应该在.PHP文件中编写你想要动态的所有css代码并使用< style>东西< / style>.

Meanwhilem,as @sємsєм said,you can creat dynamic html tags.

有点这样:(完整代码)

// PHP code
   <?PHP
     // dynamic class
     $classes = array('class1','class4'); 
     $class_name = $classes[array_rand($classes)];

     // dynamic tags
     $tags_statr = array('','<div>','<div><div>','<div><p>','<span><div>');
     $tags_end = array('','</div>','</div></div>','</div></p>','</span></div>');
     $numb = array_rand($tags_statr);
   ?>


// html code
     <?PHP echo $tags_statr[$numb]; ?>
     <div class="<? PHP echo $class_name; ?>">anything</div>
     <?PHP echo $tags_end[$numb]; ?>


// css code
   <style>
     .<? PHP echo $class_name; ?> {
      // your css codes
     }
   </style>

为了更高的安全性,您可以放置​​您的内容(此处为’任何’)(除了外部动态标签).例如:

<span1>anything</span1> // <span1> changed to <span2,3,4....>

在这种情况下,带有数据的相邻标签也是动态的,这使得爬虫更难.

最后,我必须说你不能完全阻止爬虫,你只是让它变得困难.如果您真的想保护自己的数据,可以执行以下操作:

>增加用户的限制. (例如,只有注册用户才能看到重要信息)>监控使用您网站的IP(如果可疑,请阻止它)>使用相关软件. (例如,限制每天搜索IP)

原文地址:https://www.jb51.cc/php/130676.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐